簡體   English   中英

如何在python中用子進程監視stdout?

[英]how do I monitor stdout with subprocess in python?

我有一個Linux應用程序,可以使用stdin從命令行以交互方式運行以接受命令。 在應用程序后台運行時,我使用子進程編寫了一個包裝程序來訪問stdin。 我現在可以使用p.stdin.write(command)向其發送命令,但是如何監視其響應?

p.stdout讀取以訪問該進程的輸出。

根據過程的不同,您可能必須小心確保不要在p.stdoutp.stdoutp依次在其stdin上阻塞。 如果您確定每次寫入都會輸出一行,則可以簡單地在如下循環中進行選擇:

while still_going:
    p.stdin.write('blah\n')
    print p.stdout.readline()

但是,如果輸出是零星的,則可能需要查看select模塊,以更靈活的方式在讀取和寫入之間進行切換。

暫無
暫無

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

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