0
我有一個子進程,我通過subprocess.Popen
開始。在我發送SIGINT之前,這個過程永遠不會退出。我想阻止執行,因爲在子進程的stdout上有一個特定的字符串(例如foo
)。有沒有創建線程和隊列的「簡單」方法?像 myprocess.wait_until("foo")
?Python子進程等待,直到標準輸出上的特定字符串
我有一個子進程,我通過subprocess.Popen
開始。在我發送SIGINT之前,這個過程永遠不會退出。我想阻止執行,因爲在子進程的stdout上有一個特定的字符串(例如foo
)。有沒有創建線程和隊列的「簡單」方法?像 myprocess.wait_until("foo")
?Python子進程等待,直到標準輸出上的特定字符串
while True:
line = p.stdout.readline()
if specific_string in line: break
父進程啓動子之後立即繼續,因此它可以連續讀取其子stdout和當它開創停止字信號吧。唯一需要注意的是孩子應該在輸出後持續沖洗,因爲管道通常是緩衝的。 –