Heim > Backend-Entwicklung > Python-Tutorial > Warum ist meine Python-Ausgabe verzögert und wie kann ich sie in Echtzeit anzeigen lassen?

Warum ist meine Python-Ausgabe verzögert und wie kann ich sie in Echtzeit anzeigen lassen?

DDD
Freigeben: 2024-11-12 11:31:02
Original
599 Leute haben es durchsucht

Why is my Python output delayed, and how can I make it appear in real-time?

Verzögerte Terminalausgabe in Python verstehen

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.

Lösung des Problems

Für einzelne Druckanweisungen:

  • Python 3.x: Verwenden Sie den Flush-Parameter in die Druckfunktion, um die Ausgabe explizit zu leeren, wie unten gezeigt:
for _ in range(10):
    print('.', end=' ', flush=True)
    time.sleep(.2)  # or other time-consuming work
Nach dem Login kopieren
  • Python 2.x: Verwenden Sie die .flush-Methode des sys.stdout-Streams, um Kraftübertragung:
for _ in range(10):
    print '.',
    sys.stdout.flush()
    time.sleep(.2)  # or other time-consuming work
Nach dem Login kopieren

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
    Nach dem Login kopieren
  • 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)
    Nach dem Login kopieren
  • Verwenden Sie Bibliotheken von Drittanbietern wie tqdm oder joblib, um Fortschrittsbalken mit Echtzeitaktualisierungen bereitzustellen.

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage