2012-07-10 55 views
1

如何指定python模塊子進程用來執行命令的目錄?我想要運行一個C程序,並以近乎實時的方式在Python中處理它的輸出。Python子進程模塊使用

我想EXCUTE命令(運行我的makefile我的C程序:

make run_pci 

在:

/home/ecorbett/hello_world_pthread 

我也想處理從Python的C程序的輸出。我是Python的新手,所以示例代碼將不勝感激!

謝謝, Edward

回答

2

使用cwd的參數Popen,call,check_callcheck_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 
+0

謝謝!現在我將如何捕獲c程序的輸出?它只是打印多行文字? – 2012-07-10 18:44:27

+0

check_output如何工作? – 2012-07-10 18:47:45

+1

如果您閱讀文檔,您將看到check_output返回命令的輸出。 http://docs.python.org/library/subprocess.html#subprocess.check_output – Acorn 2012-07-10 18:53:49

0

閱讀the documentation。您可以使用cwd參數指定它,否則它使用父級的當前目錄(即運行子進程的腳本)。

相關問題