我用的子進程,從視頻設備檢查zbarcam的輸出Python的執行shell命令不會終止
這裏是我的代碼:
>>> import subprocess
>>> subprocess.check_output(["zbarcam","/dev/video1"])
Zbarcam啓動上,我可以檢查的視頻窗口,問題是即使它已經讀取了代碼,它仍然繼續運行,並且在向python shell輸出任何東西之前,我必須手動關閉此窗口。
我用的子進程,從視頻設備檢查zbarcam的輸出Python的執行shell命令不會終止
這裏是我的代碼:
>>> import subprocess
>>> subprocess.check_output(["zbarcam","/dev/video1"])
Zbarcam啓動上,我可以檢查的視頻窗口,問題是即使它已經讀取了代碼,它仍然繼續運行,並且在向python shell輸出任何東西之前,我必須手動關閉此窗口。
subprocess.check_output
調用僅在進程退出時提供輸出。你想要的是當它仍在運行時讀取輸出。
要做到這一點,你可以使用這樣的事情:
import os
process =os.popen('/usr/bin/zbarcam','r')
while True:
print 'Got barcode:', process.readline()
這是完全正常的。只有在命令完成後才能得到輸出。
在這裏看到:
How can I run an external command asynchronously from Python?
的解決方案來運行命令異步的。