Affichage immédiat, affichage forcé, clignotement du résultat d'impression avec python (principalement jupyter)

Contexte

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. ..

** Seulement jupyter? ** **

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.

Solution

  1. python3.3 ou version ultérieure: crache de force la sortie d'impression: utilisez l'option flush!
  2. Avant python3.3 et 2.X: utilisez sys.stdout.flush () après l'impression. (Opération non confirmée)

** Ajoutez flush = True aux options de la fonction d'impression! (python3.3 ou version ultérieure) **

python3.3 ou plus tard


print("", flush=True)

** Utilisez sys.stdout.flush () après l'impression (opération non confirmée) **

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

Affichage immédiat, affichage forcé, clignotement du résultat d'impression avec python (principalement jupyter)
UnicodeEncodeError lutte avec la sortie standard de python3
Afficher de manière interactive des courbes algébriques en Python, Jupyter
Analyse du squelette de plan avec Python (4) Gestion du déplacement forcé
Bases de python: sortie
J'ai écrit la grammaire de base de Python dans Jupyter Lab
Essayez la sortie Python avec Haxe 3.2
Essayez d'exécuter Python avec Try Jupyter
[Compréhension et application de la syntaxe] Changement flexible de la destination de sortie standard Python
Je veux sortir le début du mois prochain avec Python
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
Affichage en temps réel de la vidéo acquise à partir de la caméra Web sur le notebook Jupyter (Python3)