Sortie de terminal persistante avec Python
En Python, il existe un problème où les sorties d'impression peuvent ne pas apparaître immédiatement dans le terminal s'il n'y a pas de nouvelle ligne présente. Cela se produit en raison de la mise en mémoire tampon de sortie, où la sortie est temporairement stockée pour améliorer les performances.
Que se passe-t-il ?
Par défaut, le terminal divise la sortie en lignes. Si une ligne se termine sans caractère de nouvelle ligne, la sortie reste dans un tampon jusqu'à ce qu'elle soit terminée. Par conséquent, lorsqu'il n'y a pas de nouvelle ligne après une instruction print, la sortie n'est pas affichée jusqu'à la fin de la boucle ou du programme.
Résoudre le problème
Pour Impressions simples :
Dans Python 3, la fonction d'impression accepte un argument flush. Le définir sur True force l'affichage immédiat de la sortie :
import time for _ in range(10): print('.', end=' ', flush=True) time.sleep(.2) # or other time-consuming work
Dans Python 2, où print est une instruction, utilisez la méthode flush du flux de sortie standard (sys.stdout) :
import time for _ in range(10): print '.', sys.stdout.flush() time.sleep(.2) # or other time-consuming work
Pour plusieurs impressions :
Au lieu de vider après chaque impression, vous pouvez désactiver complètement la mise en mémoire tampon de la ligne de sortie pour une gestion plus efficace de plusieurs impressions. Plusieurs solutions sont disponibles :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!