如何检测stdout中是否有数据?

时间:2016-11-03 12:43:01

标签: python subprocess stdout

我使用python' s subprocess运行python脚本(让我们称之为script2.py),该脚本正在向{{1}打印信息}使用stdout重定向。问题是PIPE会停止打印信息,但它会在后台继续运行。我想要的是检测该状态(什么都没有写入script2.py)。有没有办法这样做?

我可以通过以下方式模拟此行为:

script2.py

stdout

接下来的500次迭代什么都不会发生,这是我需要检测的内容才能重新运行脚本。

1 个答案:

答案 0 :(得分:0)

Popen.stdout 如果stdout参数是PIPE,则此属性是一个文件对象,它提供子进程的输出。否则,它是无。

python documentation

因此,在考虑完成流程初始输出之前,您可能需要决定等待的时间。所以 proc.stdout.readline()然后睡眠(1)然后冲洗并重复。