今私はPythonの関数の出力をキャッチし、変数に格納するためにこれを使用します。キャプチャおよび機能の表示コンソール出力
import io
from contextlib import redirect_stdout
def catch_output(func):
result = io.StringIO()
with redirect_stdout(result):
func()
return result.getvalue()
output = catch_output(my_func)
これは正常に動作しますが、それはまた、ミュートfunc呼び出しが終了するまでコンソールを起動します。 ライブの出力をコンソールに書き込んだりパイプしたりすることができますか?誰かが知っていますか?
[スレッド](https://docs.python.org/3/library/threading.html)を試しましたか? – jshapy8
Pythonの_teeストリームをグーグルで検索すると、合理的な解決策が得られるはずです。 –
@justin_shapiroさんのコメントをさらに追加するには、同時に実行する必要がある少なくとも2つのことがあります。実行中の関数があり、ファイルバッファ(stdoutからリダイレクトされたもの)同時にそのバッファを定期的に何らかのストレージにコピーし、それを実際のstdoutに出力します。 – Aaron