ホームページ >バックエンド開発 >Python チュートリアル >Pythonで即時ターミナル出力を強制する方法?
Python による永続的なターミナル出力
Python では、何も存在しない場合、印刷出力がターミナルにすぐに表示されないという問題があります。改行が存在します。これは、パフォーマンスを向上させるために出力が一時的に保存される出力バッファリングが原因で発生します。
何が起こりますか?
デフォルトでは、ターミナルは出力を行に分割します。行が改行文字なしで終了する場合、出力は完了するまでバッファーに残ります。その結果、print ステートメントの後に改行がない場合、ループまたはプログラムが終了するまで出力は表示されません。
問題の解決
の場合単一の印刷:
Python 3 では、print 関数はフラッシュ引数を受け入れます。これを True に設定すると、出力がすぐに表示されます:
import time for _ in range(10): print('.', end=' ', flush=True) time.sleep(.2) # or other time-consuming work
Python 2 では、print がステートメントであり、標準出力ストリーム (sys.stdout) のフラッシュ メソッドを使用します:
import time for _ in range(10): print '.', sys.stdout.flush() time.sleep(.2) # or other time-consuming work
複数の印刷の場合:
各印刷後にフラッシュする代わりに、出力行バッファリングを完全に無効にして、複数の印刷をより効率的に処理できます。複数の解決策が利用可能です:
以上がPythonで即時ターミナル出力を強制する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。