出力がless
にパイプされていて、そのスクリプトをすべて一度ではなくless
に印刷したいと考えています。各印刷後に標準出力をフラッシュすることの含意
各印刷後にstdoutを(sys.stdout.flush()
を介して)フラッシュすると、フラッシュは(明らかに)フラッシュされたときless
に表示されることがわかりました。
私の質問です:これに何か欠点はありますか?私のスクリプトには何十万もの行が印刷されていて、各行の後にがフラッシュされます。に問題がありますか?あなたがフラッシュするたびに表示するだけでなく、完全にバッファされた出力
Pythonはすべてを自動的にフラッシュするように指示できます。私はあなたのコードを長くするのではなく、そのことを利用することを考えます。 –
Pythonインタプリタの '-u'引数と' PYTHONUNBUFFERED'環境変数を参照してください。どちらもhttps://docs.python.org/2/using/cmdline.htmlに記載されています –
@CharlesDuffyヒントをいただきありがとうございます。 – Jeeter