ホームページ > バックエンド開発 > Python チュートリアル > Python で sys.stdout の出力バッファリングを無効にするにはどうすればよいですか?

Python で sys.stdout の出力バッファリングを無効にするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-27 09:49:09
オリジナル
946 人が閲覧しました

How Can I Disable Output Buffering for sys.stdout in Python?

Python のインタープリタで sys.stdout の出力バッファリングを無効にする

Python のインタープリタは、sys.stdout の出力バッファリングをデフォルトで有効にします。標準を受け入れるオブジェクト出力。

バッファリング方法の無効化:

出力バッファリングを無効にするには、いくつかの方法があります:

  • コマンド ラインスイッチ:
python -u [script.py]
ログイン後にコピー
  • sys.stdout のラッパー クラス:
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)
ログイン後にコピー
  • PYTHONUNBUFFER環境変数:

この変数を空ではない値に設定すると、バッファリングが無効になります:

export PYTHONUNBUFFERED=1
ログイン後にコピー
  • sys.stdout ファイル記述子の変更:

この方法には、開くことが含まれますバッファリングなしの新しいファイル記述子:

import os
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
ログイン後にコピー

さらに、質問で述べたように、グローバル フラグは実行中にプログラムで設定できます。ただし、出力バッファリングを無効にする明示的なグローバル フラグはないようです。

以上がPython で sys.stdout の出力バッファリングを無効にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート