Pour vérifier la progression du traitement intensif, l'instruction d'impression prise en sandwich au milieu du traitement n'est pas sortie à ce moment-là, Il peut sortir en une seule fois une fois le traitement terminé.
Ce comportement peut être correct en termes de vitesse de traitement, mais C'est un problème lorsque vous souhaitez qu'il soit publié immédiatement. ..
Dans l'exemple de phrase ci-dessous, cela se produit avec jupyter (notebook IPython), cela peut donc dépendre des paramètres du tampon, etc. Sur la console, même si flush n'était pas spécifié, il était sorti séquentiellement.
python3.3 ou plus tard
print("", flush=True)
python3.Avant 3(Le code ci-dessous est la série python2)
import sys
print ""
sys.stdout.flush()
** Exemple: avec python3.4 et jupyter **
Confirmé avec jupyter (Sur la console, il était sorti séquentiellement même sans vidage ...)
import time
time.sleep(1)
print("processing A...")#Non affiché ici ...
time.sleep(1)
print("finish!")#Il est imprimé avec l'impression ci-dessus. .. ..
#Si vous utilisez flush ...
time.sleep(1)
print("processing B(flush=True)", flush=True)#Sera affiché bientôt!
time.sleep(1)
print("finish!", flush=True)
Recommended Posts