查看从Python调用的长时间运行的外部进程的输出

时间:2011-09-20 00:37:14

标签: python popen

我有一个很长的运行过程,我想从Python程序调用。此过程向stdout输出大量信息。我想在命令行上看到我调用程序的输出,因为它正在运行。我读过有关Popen的文章,并尝试了

p = Popen(cmd, stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()

及其变体,但在cmd完成运行之前,cmd的输出不会显示。

如何在cmd运行时查看cmd的输出?

1 个答案:

答案 0 :(得分:1)

我已经通过使用评论中提到的部分内容来解决这个问题,并将其与以下内容相结合

# read line without blocking
while not p.poll():
    try: 
        line = q.get_nowait() # or q.get(timeout=.1)
    except Empty:
        pass # Do nothing
    else: # got line
        print line