我有一個程序寫入標準輸出並可能寫入stderr。我想從python運行它,捕獲stdout和stderr。我的代碼如下所示:如何才能找出爲什麼subprocess.Popen等待()如果stdout = PIPE永遠等待?
from subprocess import *
p = Popen(exe, shell=TRUE, stdout=PIPE, stderr=PIPE)
rtrncode = p.wait()
的一對夫婦的程序,這工作得很好,但是當我加入一個新的,新的一個永遠掛起。如果我刪除stdout=PIPE
,程序將其輸出寫入控制檯並完成,並且一切都很好。我怎樣才能確定是什麼導致了掛起?
在Windows XP上使用python 2.5。該程序不從標準輸入讀取,也不具有任何用戶輸入(即「擊中鍵」)。
你打敗了我。 +1 – MitMaro 2009-09-18 16:37:30
使用python 2.5安裝的幫助文件沒有那麼一點點的信息。謝謝 – 2009-09-18 17:07:12
@Graeme啊,是的,2.6的文檔大大改進了2.5。 – 2009-09-18 17:11:55