Heim >Backend-Entwicklung >Python-Tutorial >Wie erzwinge ich eine sofortige Terminalausgabe in Python?
Persistente Terminalausgabe mit Python
In Python gibt es ein Problem, bei dem Druckausgaben möglicherweise nicht sofort im Terminal angezeigt werden, wenn keine vorhanden sind Newline vorhanden. Dies liegt an der Ausgabepufferung, bei der die Ausgabe vorübergehend gespeichert wird, um die Leistung zu verbessern.
Was passiert?
Standardmäßig unterteilt das Terminal die Ausgabe in Zeilen. Wenn eine Zeile ohne ein Zeilenumbruchzeichen endet, bleibt die Ausgabe in einem Puffer, bis sie abgeschlossen ist. Wenn nach einer Druckanweisung kein Zeilenumbruch erfolgt, wird die Ausgabe daher erst angezeigt, wenn die Schleife oder das Programm beendet wird.
Behebung des Problems
Für Einzelne Ausdrucke:
In Python 3 akzeptiert die Druckfunktion ein Flush-Argument. Wenn Sie es auf True setzen, wird die Ausgabe sofort angezeigt:
import time for _ in range(10): print('.', end=' ', flush=True) time.sleep(.2) # or other time-consuming work
In Python 2, wo print eine Anweisung ist, verwenden Sie die Flush-Methode des Standardausgabestreams (sys.stdout):
import time for _ in range(10): print '.', sys.stdout.flush() time.sleep(.2) # or other time-consuming work
Für mehrere Ausdrucke:
Anstatt nach jedem Druck zu leeren, können Sie die Pufferung der Ausgabezeilen vollständig deaktivieren, um mehrere Ausdrucke effizienter zu verarbeiten. Es stehen mehrere Lösungen zur Verfügung:
Das obige ist der detaillierte Inhalt vonWie erzwinge ich eine sofortige Terminalausgabe in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!