从Python调用Perl脚本

use*_*490 13 python

我有一个我想从Python脚本调用的Perl脚本.我一直在寻找,并没有成功.我基本上试图调用Perl脚本向它发送1个变量,但不需要Perl脚本的输出,因为它是一个自包含的程序.

到目前为止我想出的是:

var = "/some/file/path/"
pipe = subprocess.Popen(["./uireplace.pl", var], stdin=subprocess.PIPE)
pipe.stdin.write(var)
pipe.stdin.close()
Run Code Online (Sandbox Code Playgroud)

刚刚开始Python编程,所以我确信上面的内容完全是胡说八道.任何帮助将非常感激.

mou*_*uad 15

做就是了:

var = "/some/file/path/"
pipe = subprocess.Popen(["perl", "uireplace.pl", var])
Run Code Online (Sandbox Code Playgroud)

  • @sukhbir:我觉得当OP说,他并不需要输出,我也可以"假设",他也不想等到perl脚本完成这什么`subprocess.call`或`subprocess.check_call `做:) (3认同)

Ken*_*der 11

如果您只想打开一个perl解释器的管道,那么您就是在正确的轨道上.我认为你唯一缺少的是perl脚本本身不是可执行文件.所以你需要这样做:

var = "/some/file/path/"
pipe = subprocess.Popen(["perl", "./uireplace.pl", var], stdin=subprocess.PIPE)
pipe.stdin.write(var)
pipe.stdin.close()
Run Code Online (Sandbox Code Playgroud)