从Python调用Perl脚本
我有一个Perl脚本,想从一个Python脚本中调用它。我到处找过,但一直没有成功。基本上,我是想调用这个Perl脚本,并给它传递一个变量,但我不需要Perl脚本的输出,因为它是一个自包含的程序。
到目前为止,我想到的代码是:
var = "/some/file/path/"
pipe = subprocess.Popen(["./uireplace.pl", var], stdin=subprocess.PIPE)
pipe.stdin.write(var)
pipe.stdin.close()
我刚开始学习Python编程,所以我知道上面的代码肯定是胡说八道。任何帮助都会非常感激。
5 个回答
3
你可以试试 subprocess.call() 这个方法。它不会返回你执行的命令的输出,而是返回一个代码,用来表示执行是否成功。
var = "/some/file/path"
retcode = subprocess.call(["./uireplace.pl", var])
if retcode == 0:
print("Passed!")
else:
print("Failed!")
确保你的 Perl 脚本是可执行的。否则,你可以在命令中包含 Perl 解释器(类似这样):
subprocess.call(["/usr/bin/perl", "./uireplace.pl", var])
17
只需这样做:
var = "/some/file/path/"
pipe = subprocess.Popen(["perl", "uireplace.pl", var])
16
如果你只是想打开一个通道来运行perl解释器,那你已经在正确的方向上了。唯一我觉得你缺少的是,perl脚本本身并不是一个可执行的文件。所以你需要这样做:
var = "/some/file/path/"
pipe = subprocess.Popen(["perl", "./uireplace.pl", var], stdin=subprocess.PIPE)
pipe.stdin.write(var)
pipe.stdin.close()