1
Folks ....我有一個腳本在Python程序中運行,通過subprocess Popen
命令來創建一個包含腳本輸出的管道。這是工作。但是我認爲我將不得不使用.communicate()
命令來處理來自我的程序的管道中的記錄。我無法得到這個工作,但確實得到它與這個代碼的工作。當我嘗試使用.communicate
命令時,我做錯了什麼?在Python中處理PIPE - Raspbian Linux
import subprocess
nul_f = open('/dev/null', 'w')
try:
tcpdmp = subprocess.Popen(['/usr/bin/sudo /usr/sbin/tcpdump -A -n -p -l - i eth0 -s0 -w - tcp dst port 80'],
stdout=subprocess.PIPE, shell=True,
stderr=nul_f,)
print 'My Records'
i=0
# end_of_pipe = tcpdmp.communicate()
while i<10:
i=i+1
line = tcpdmp.stdout.readline()
print '\t --', i, line
except KeyboardInterrupt:
print 'done'
tcpdmp.terminate()
tcpdmp.kill()
nul_f.close()
感謝您的任何建議和批評..... RDK
PS ......在樹莓派運行Raspbian Linux的....
JF .... OK,感謝您的解釋,參考和交替代碼... .RDK – RDK 2015-04-04 05:21:34