如何指定python模块子进程用来执行命令的目录?我想要运行一个C程序,并以近乎实时的方式在Python中处理它的输出。Python子进程模块使用
我想EXCUTE命令(运行我的makefile我的C程序:
make run_pci
在:
/home/ecorbett/hello_world_pthread
我也想处理从Python的C程序的输出。我是Python的新手,所以示例代码将不胜感激!
谢谢, Edward
如何指定python模块子进程用来执行命令的目录?我想要运行一个C程序,并以近乎实时的方式在Python中处理它的输出。Python子进程模块使用
我想EXCUTE命令(运行我的makefile我的C程序:
make run_pci
在:
/home/ecorbett/hello_world_pthread
我也想处理从Python的C程序的输出。我是Python的新手,所以示例代码将不胜感激!
谢谢, Edward
使用cwd
的参数Popen
,call
,check_call
或check_output
。例如。
subprocess.check_output(["make", "run_pci"],
cwd="/home/ecorbett/hello_world_pthread")
编辑:OK,现在我明白你的 “近实时” 的意思。尝试
p = subprocess.Popen(["make", "run_pci"],
stdout=subprocess.PIPE,
cwd="/home/ecorbett/hello_world_pthread")
for ln in p.stdout:
# do processing
阅读the documentation。您可以使用cwd
参数指定它,否则它使用父级的当前目录(即运行子进程的脚本)。
谢谢!现在我将如何捕获c程序的输出?它只是打印多行文字? – 2012-07-10 18:44:27
check_output如何工作? – 2012-07-10 18:47:45
如果您阅读文档,您将看到check_output返回命令的输出。 http://docs.python.org/library/subprocess.html#subprocess.check_output – Acorn 2012-07-10 18:53:49