如何指定python模块子进程用于执行命令的目录?我想运行一个C程序,并在近乎实时的情况下用Python处理它的输出。
我想执行命令(这为我的C程序运行我的makefile:
make run_pci
在:
/home/ecorbett/hello_world_pthread
我还想用Python处理C程序的输出。我是Python的新手,因此非常感谢示例代码!
谢谢, 爱德华
答案 0 :(得分:3)
将cwd
参数用于Popen
,call
,check_call
或check_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
参数指定它,否则它使用父级的当前目录(即运行子进程的脚本)。