-1

現在、subprocess.check_output を使用して大量の出力を生成する外部 C++ プログラムを呼び出しており、stdout をログ ファイルに保存しています。ただし、c++ プログラムの終了には非常に長い時間がかかる場合がありますが、bash コマンド ライン経由で c++ プログラムを直接実行する場合と同様に、終了する前に stdout を表示したいと考えています。

もちろん、fstream を使用して C++ プログラムを直接変更して出力を保存することで、これを実現することもできます。しかし、標準出力を傍受できるPythonの解決策があるのだろうか。

前もって感謝します!

4

1 に答える 1

1

出力をログ ファイルに保存する場合は、開いたログ ファイルに set を使用subprocess.callしてみませんか?stdout

with open("logfile") as logfile:
  subprocess.call("run_my_program arg1 arg2", shell=True, stdout=logfile)

tail -f logfile次に、プログラムの実行中にログの内容が簡単に表示されます。

于 2013-07-23T08:23:52.200 に答える