7
我想在Python中編寫一個程序,並被告知要運行一個.exe文件。當這個.exe文件運行時,它會吐出大量的數據,並且我需要將一行打印到屏幕上。我很確定我需要使用subprocess.popen
或類似的東西,但我是新來的子進程,並沒有任何線索。任何人都有一個簡單的方法讓我完成這個任務?!?謝謝!!如何捕獲子進程的stdout輸出?
我想在Python中編寫一個程序,並被告知要運行一個.exe文件。當這個.exe文件運行時,它會吐出大量的數據,並且我需要將一行打印到屏幕上。我很確定我需要使用subprocess.popen
或類似的東西,但我是新來的子進程,並沒有任何線索。任何人都有一個簡單的方法讓我完成這個任務?!?謝謝!!如何捕獲子進程的stdout輸出?
事情是這樣的:
import subprocess
process = subprocess.Popen(["yourcommand"], stdout=subprocess.PIPE)
result = process.communicate()[0]
@保羅的解決方案是完美的,如果你有興趣在這個過程中完成執行後打印輸出。如果你想在過程運行時輪詢輸出,你必須這樣做:
process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
while True:
out = process.stdout.readline(1)
if out == '' and process.poll() != None:
break
if out.startswith('myline'):
sys.stdout.write(out)
sys.stdout.flush()
如何讀取某一行?那是0哪裏? 是的,我有興趣在打印輸出完成後的過程。 也有你的「你的命令」的exe擴展去那裏? – Tyler 2009-05-28 20:57:11