重複の可能性:
サブプロセスの stdout を 1 行ずつ読み取る
Linux コンソールで大量のテキストを生成する C++ プログラムを作成しました。
この C++ の出力を解析するために Python スクリプトを使用しています。私はこれをそのようにやっています:
cmd = ["./starter"]
p = subprocess.Popen(cmd,
stdout=subprocess.PIPE)
for line in p.stdout:
strLine = str(line).rstrip()
print(">>> " + strLine )
これは機能しています。しかし、大きな問題があります。出力がライブではありません。つまり、スクリプトを開始した後は何も出力されませんが、数秒後にのみ出力されます..ほとんどの場合、Pythonは最大文字数を待ってから一度にすべてを出力します...
C++プログラムによって印刷されたようにすぐに行を印刷するようにpythonに指示する方法はありますか?