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. ..
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.
python3.3 oder später
print("", flush=True)
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