【发布时间】:2023-03-15 14:37:01
【问题描述】:
我正在尝试从 python 脚本执行 Perl 脚本,但似乎还没有执行! 在 python 中使用这个命令:
os.popen('dump_hash.pl {}'.format(scn_filepath))
这是 dump_hash.pl 脚本:
$path = <STDIN>;
require "$path";
open (OUTFILE, "+>dumpered_hash");
print OUTFILE Dumper("\%...");
close (OUTFILE);
当试图将“dumpered_hash”作为可读文件打开时,脚本卡住了。当我在 shell 中运行 ls 命令时,该目录没有 dumpered_hash 文件。
谢谢你。
【问题讨论】:
-
脚本如何“未执行”但“尝试打开时卡住”?如果打开文件输出有问题,也许这些链接会帮助你:perldoc.perl.org/File/Path.html#ERROR-HANDLINGstackoverflow.com/questions/3233327/… - 否则,你能提供更详细的信息吗?什么有效,什么无效,如何调用哪个脚本等。还要粘贴确切的错误消息
-
我的错误,它卡在 os.popen(..) 命令上。
-
使用
subprocess.call('perl dump_hash.pl')使用subprocesspython 模块怎么样? -
subprocess.Popen('dump_hash.pl {}'.format(scn_filepath)),尝试了 subprocess.call 它没有工作,给出了同样的错误。
-
如果您在 *nix 下运行,您可能需要在 .pl 文件的开头添加
#!行,否则您的操作系统没有理由猜测它是 Perl。