2014-10-31 73 views
2

我一直在寻找这里和其他地方的多个例子,但似乎没有为我工作。我对python一无所知。所有我想要做的是运行一个Perl脚本只是位于使用python运行perl脚本

sdb1/media/process.pl 

,我已经找到了示例代码运行所有的地方,而且大多好像它有额外的东西,我不需要。我想要现在的问题是

#! /usr/bin/python 
pipe = subprocess.Popen(["perl", "/sdb1/media/process.pl"], stdout=subprocess.PIPE) 

但只是给我的错误

NameError: name 'subprocess' is not defined 

如果我错过了什么重要的东西,让我知道。否则,谢谢你的时间。

回答

4

需要导入的子库或者运行子

#! /usr/bin/python 

import subprocess 

pipe = subprocess.Popen(["perl", "/sdb1/media/process.pl"], stdout=subprocess.PIPE) 
+0

太容易了。谢谢。我必须再等8分钟才能接受它。 – user259861 2014-10-31 04:12:16

+0

一个萦绕的问题......当我通过命令行运行perl脚本时,它会执行整个过程。当我通过python执行时,它会在第一行后挂起。有一个简单的解决方案吗? – user259861 2014-10-31 04:29:01

+0

没关系。我想到了。我只是将其更改为 stdout = subprocess.PIPE).communicate() – user259861 2014-10-31 04:47:12

4

,如果你只是使用相同的功能很多次,你可以做

from subprocess import Popen 

那么你可以只致电

pipe = Popen(["perl", "/sdb1/media/process.pl"], stdout=subprocess.PIPE) 

我会评论,但我需要50代表。