Python puffert die Ausgabe standardmäßig, um die Leistung zu steigern, indem sie alle auf einmal und nicht einzeln an andere Programme wie das Terminal übertragen wird. Wenn keine neue Zeile vorhanden ist, werden Druckanweisungen normalerweise zeilenweise zwischengespeichert, was zu einer Verzögerung bei der Anzeige des beabsichtigten Textes führt.
Für einzelne Druckanweisungen:
for _ in range(10): print('.', end=' ', flush=True) time.sleep(.2) # or other time-consuming work
for _ in range(10): print '.', sys.stdout.flush() time.sleep(.2) # or other time-consuming work
Für Mehrfachdruck Anweisungen:
Anstatt jeden Ausdruck einzeln zu leeren, können Sie die Zeilenpufferung vollständig deaktivieren. Hier sind einige mögliche Lösungen:
Setzen Sie die Umgebungsvariable PYTHONUNBUFFERED auf True:
export PYTHONUNBUFFERED=1
Verwenden Sie das fcntl-Modul, um Dateideskriptoren zu manipulieren:
import fcntl stdout_fileno = sys.stdout.fileno() fcntl.fcntl(stdout_fileno, fcntl.F_SETFL, os.O_NONBLOCK)
Durch die Implementierung dieser Techniken können Sie sicherstellen, dass die Ausgabe sofort im Terminal angezeigt wird, was für ein informativeres und interaktiveres Erlebnis während der Skriptausführung sorgt.
Das obige ist der detaillierte Inhalt vonWarum ist meine Python-Ausgabe verzögert und wie kann ich sie in Echtzeit anzeigen lassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!