Maison > Article > développement back-end > Pourquoi ma sortie Python est-elle retardée et comment puis-je la faire apparaître en temps réel ?
Python met par défaut la sortie en mémoire tampon pour améliorer les performances en la transmettant en une seule fois plutôt qu'individuellement à d'autres programmes comme le terminal. En l'absence de nouvelle ligne, les instructions d'impression sont généralement mises en mémoire tampon ligne par ligne, ce qui entraîne un retard dans l'affichage du texte souhaité.
Pour les instructions d'impression uniques :
for _ in range(10): print('.', end=' ', flush=True) time.sleep(.2) # or other time-consuming work
for _ in range(10): print '.', sys.stdout.flush() time.sleep(.2) # or other time-consuming work
Pour une impression multiple Déclarations :
Au lieu de vider chaque impression individuellement, vous pouvez désactiver complètement la mise en mémoire tampon des lignes. Voici quelques solutions potentielles :
Définissez la variable d'environnement PYTHONUNBUFFERED sur True :
export PYTHONUNBUFFERED=1
Utilisez le module fcntl pour manipuler les descripteurs de fichiers :
import fcntl stdout_fileno = sys.stdout.fileno() fcntl.fcntl(stdout_fileno, fcntl.F_SETFL, os.O_NONBLOCK)
En mettant en œuvre ces techniques, vous pouvez garantir que le résultat s'affiche immédiatement dans le terminal, offrant ainsi une expérience plus informative et interactive pendant l'exécution du script.
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!