Sofortige Anzeige, erzwungene Anzeige, Blinken des Druckausgabeergebnisses mit Python (hauptsächlich Jupiter)

Hintergrund

Um den Fortschritt einer starken Verarbeitung zu überprüfen, wird die Druckanweisung, die sich in der Mitte der Verarbeitung befindet, zu diesem Zeitpunkt nicht ausgegeben. Es kann auf einmal herauskommen, nachdem die Verarbeitung abgeschlossen ist.

Dieses Verhalten kann in Bezug auf die Verarbeitungsgeschwindigkeit korrekt sein, aber Dies ist ein Problem, wenn Sie möchten, dass es sofort freigegeben wird. ..

** Nur Jupiter? ** ** **

Im folgenden Beispielsatz geschieht dies mit Jupyter (IPython-Notebook), daher kann dies von den Einstellungen des Puffers usw. abhängen. Auch wenn auf der Konsole kein Flush angegeben wurde, wurde er nacheinander ausgegeben.

Lösungen

  1. python3.3 oder höher: Druckausgabe gewaltsam ausspucken: Spüloption verwenden!
  2. Vor Python3.3 und 2.X: Verwenden Sie nach dem Drucken sys.stdout.flush (). (Operation nicht bestätigt)

** Flush = True zu den Druckfunktionsoptionen hinzufügen! (Python3.3 oder höher) **

python3.3 oder später


print("", flush=True)

** Verwenden Sie nach dem Drucken sys.stdout.flush () (Vorgang nicht bestätigt) **

python3.Vor 3(Der folgende Code ist python2 series)


import sys
print ""
sys.stdout.flush()

** Beispiel: mit Python3.4 und Jupyter **

Bestätigt mit jupyter (Auf der Konsole wurde es auch ohne Spülen sequentiell ausgegeben ...)


import time
time.sleep(1)
print("processing A...")#Hier nicht angezeigt ...
time.sleep(1)
print("finish!")#Es wird zusammen mit dem obigen Druck ausgegeben. .. ..

#Wenn Sie Flush verwenden ...
time.sleep(1)
print("processing B(flush=True)", flush=True)#Wird bald angezeigt!
time.sleep(1)
print("finish!", flush=True)

Recommended Posts

Sofortige Anzeige, erzwungene Anzeige, Blinken des Druckausgabeergebnisses mit Python (hauptsächlich Jupiter)
UnicodeEncodeError hat Probleme mit der Standardausgabe von Python3
Interaktive Anzeige algebraischer Kurven in Python, Jupyter
Flugzeugskelettanalyse mit Python (4) Umgang mit erzwungener Verschiebung
Grundlagen von Python: Ausgabe
Ich habe die grundlegende Grammatik von Python in Jupyter Lab geschrieben
Probieren Sie die Python-Ausgabe mit Haxe 3.2 aus
Versuchen Sie, Python mit Try Jupyter auszuführen
[Verständnis und Anwendung mit Syntax] Flexibles Umschalten des Python-Standardausgabeziels
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
Echtzeitanzeige von Videos, die von einer Webkamera auf einem Jupyter-Notebook (Python3) aufgenommen wurden