簡體   English   中英

如何檢測stdout中是否有任何數據?

[英]How to detect if there is any data in stdout?

我正在使用python的subprocess script2.py來運行python腳本(我們稱其為script2.py ),並且該腳本將信息打印到stdout ,該信息可以使用PIPE重定向。 問題是script2.py停止打印信息,但script2.py后台運行。 我想要的是檢測狀態(什么都沒有寫到stdout )。 有什么辦法嗎?

我可以通過以下方式模擬此行為:

script2.py

for i in range(0,1000):
    if i < 500:
        print "HUEHUE"

接下來的500次迭代將不會發生任何事情,這就是我需要檢測以重新運行腳本的原因。

Popen.stdout如果stdout參數是PIPE,則此屬性是一個文件對象,提供子進程的輸出。 否則為“無”。

python文檔

因此,您可能需要確定等待時間,然后才能考慮完成流程的初始輸出。 因此proc.stdout.readline()然后sleep(1)然后沖洗並重復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM