[英]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.