簡體   English   中英

如何在Python中讀取正在進行的進程的stdout輸出?

[英]How to read stdout output of ongoing process in Python?

您好我是Python編程語言的新手,我在編寫一個腳本時遇到了問題。 我想保存stdout的輸出,這是我在Python腳本中的變量中運行tcpdump命令時獲得的,但是我希望tpcdump命令能夠連續運行,因為我想收集所有被tcpdump過濾的數據包的長度(用我寫的過濾器)。 我試過了 :

    fin, fout = os.popen4(comand)
    result = fout.read()
    return result

但它只是掛起。

我猜它會掛起,因為os.popen4在子進程退出之前不會返回。 您應該使用subprocess.Popen

import subprocess
import shlex  #just so you don't need break "comand" into a list yourself ;)

p=subprocess.Popen(shlex.split(comand),stdout=subprocess.PIPE)
first_line_of_output=p.stdout.readline()
second_line_of_output=p.stdout.readline()
...

暫無
暫無

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

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