Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich die Ausgabepufferung für sys.stdout in Python deaktivieren?

Wie kann ich die Ausgabepufferung für sys.stdout in Python deaktivieren?

Barbara Streisand
Freigeben: 2024-12-27 09:49:09
Original
943 Leute haben es durchsucht

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

Deaktivieren der Ausgabepufferung im Python-Interpreter für sys.stdout

Pythons Interpreter aktiviert standardmäßig die Ausgabepufferung für sys.stdout, eine dateiähnliche Datei Objekt, das die Standardausgabe akzeptiert.

Deaktivieren Pufferungsmethoden:

Um die Ausgabepufferung zu deaktivieren, gibt es mehrere Ansätze:

  • Befehlszeilenschalter:
python -u [script.py]
Nach dem Login kopieren
  • Wrapper-Klasse für 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)
Nach dem Login kopieren
  • PYTHONUNBUFFERED-Umgebungsvariable:

Diese Variable auf einen nicht leeren Wert setzen deaktiviert Pufferung:

export PYTHONUNBUFFERED=1
Nach dem Login kopieren
  • Ändern des sys.stdout-Dateideskriptors:

Diese Methode beinhaltet das Öffnen eines neuen Dateideskriptors ohne Pufferung:

import os
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
Nach dem Login kopieren

Darüber hinaus können, wie in der Frage erwähnt, globale Flags während der Ausführung programmgesteuert gesetzt werden. Es scheint jedoch kein explizites globales Flag zu geben, das die Ausgabepufferung deaktiviert.

Das obige ist der detaillierte Inhalt vonWie kann ich die Ausgabepufferung für sys.stdout in Python deaktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage