Python のインタープリタで sys.stdout の出力バッファリングを無効にする
Python のインタープリタは、sys.stdout の出力バッファリングをデフォルトで有効にします。標準を受け入れるオブジェクト出力。
バッファリング方法の無効化:
出力バッファリングを無効にするには、いくつかの方法があります:
python -u [script.py]
class Unbuffered(object): def __init__(self, stream): self.stream = stream def write(self, data): self.stream.write(data) self.stream.flush() def writelines(self, datas): self.stream.writelines(datas) self.stream.flush() def __getattr__(self, attr): return getattr(self.stream, attr) import sys sys.stdout = Unbuffered(sys.stdout)
この変数を空ではない値に設定すると、バッファリングが無効になります:
export PYTHONUNBUFFERED=1
この方法には、開くことが含まれますバッファリングなしの新しいファイル記述子:
import os sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
さらに、質問で述べたように、グローバル フラグは実行中にプログラムで設定できます。ただし、出力バッファリングを無効にする明示的なグローバル フラグはないようです。
以上がPython で sys.stdout の出力バッファリングを無効にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。