如何指定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