我有一个很长的运行过程,我想从Python程序调用。此过程向stdout输出大量信息。我想在命令行上看到我调用程序的输出,因为它正在运行。我读过有关Popen的文章,并尝试了
p = Popen(cmd, stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()
及其变体,但在cmd完成运行之前,cmd的输出不会显示。
如何在cmd运行时查看cmd的输出?
答案 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