Python子进程模块使用

时间:2012-07-10 18:32:44

标签: python subprocess

如何指定python模块子进程用于执行命令的目录?我想运行一个C程序,并在近乎实时的情况下用Python处理它的输出。

我想执行命令(这为我的C程序运行我的makefile:

make run_pci

在:

/home/ecorbett/hello_world_pthread

我还想用Python处理C程序的输出。我是Python的新手,因此非常感谢示例代码!

谢谢, 爱德华

2 个答案:

答案 0 :(得分:3)

cwd参数用于Popencallcheck_callcheck_output。 E.g。

subprocess.check_output(["make", "run_pci"],
                        cwd="/home/ecorbett/hello_world_pthread")

编辑:好的,现在我明白你的意思是“接近实时”。尝试

p = subprocess.Popen(["make", "run_pci"],
                     stdout=subprocess.PIPE,
                     cwd="/home/ecorbett/hello_world_pthread")
for ln in p.stdout:
    # do processing

答案 1 :(得分:0)

阅读the documentation。您可以使用cwd参数指定它,否则它使用父级的当前目录(即运行子进程的脚本)。