我想运行包装一个简单的(Windows)命令行工具在我写的PyQt GUI应用程序。我遇到的问题是命令行工具会将它的进度输出到标准输出(这是一个服务器重置命令,因此您可以获得“正在尝试停止”和“重新启动”输出的输出。Python打印StdOut,因为它收到
我想要做的是捕获输出这样我就可以显示它作为我的应用程序的一部分,我认为这将是非常简单的事情像下面这样:
import os
import subprocess as sub
cmd = "COMMAND LINE APP NAME -ARGS"
proc = sub.Popen(cmd, shell=True, stdout=sub.PIPE).stdout
while 1:
line = proc.readline()
if not line:
break
print line
这在部分工作我得到标准输出的内容,而是作为进度消息发送一旦命令行应用程序退出,我得到它并似乎一次冲洗StdOut。
是它e一个简单的答案?
重复:http://stackoverflow.com/questions/527197/intercepting-stdout-of-a-subprocess-while-it-is-running – 2009-07-20 10:00:12