我有一个程序写入标准输出并可能写入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