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:
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)
Diese Variable auf einen nicht leeren Wert setzen deaktiviert Pufferung:
export PYTHONUNBUFFERED=1
Diese Methode beinhaltet das Öffnen eines neuen Dateideskriptors ohne Pufferung:
import os sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
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!