質問: 処理が重いpythonスクリプトを動かしています。数分に一度print処理が走ります。 terminalのコマンドラインの出力をテキストファイルに保存し、数分に一度くらいの頻度で更新してほしいのですが(以前このようにできたことがあり、できるものなのかと思っていました)、処理が完全に終わらないとtxtファイルがずっと0KBのままになっているようです。 逆にすぐ処理が終わるものについては、きちんとtxtファイルに書き込み出来ているように思います。 どのようにすればもう少しテキストファイルへの書き込みの頻度を上げられるのでしょうか?処理が途中でも、その処理を中断するかどうかの判断のために、コマンドライン出力の結果を見たいです。 今使っているコードは ``` python3 my_script.py > output.txt ``` です。よろしくお願い致します。
回答: 出力がすぐに反映されないのはバッファリングの影響だと思いますが、手っ取り早くは Python の起動時にコマンドラインで `-u` オプションを使う方法かもしれません。 ``` $ python3 -u my_script.py > output.txt ``` その他にも色々な方法が以下リンク先では紹介されています。 Write Python stdout to file immediately - Unix & Linux Stack Exchange