サブプロセスモジュール(Python 2.7)を使用して、コマンドを実行して実行中の出力を処理しようとしています。Python - 長期実行サブプロセスからの出力を読み取る
私は次のようなコードしている:
process = subprocess.Popen(
['udevadm', 'monitor', '--subsystem=usb', '--property'],
stdout=subprocess.PIPE)
for line in iter(process.stdout.readline, ''):
print(line)
ただし、出力は私だけがprint文の後にsys.stdout.flush()
を追加した場合でも、私はCtrl + Cの後に印刷されます。
なぜこのようなことが起こりますか、このプロセスの出力をどのように流すことができますか?
特に、このudevadm monitor
コマンドは終了を意図していないため、プロセスが終了して一度に処理されるのを待つことはできません。
私はlive output from subprocess commandを見つけましたが、受け入れられた答えのアプローチは私の問題を解決しませんでした。
を(http://stackoverflow.com/a/17698359/ 4279) – jfs