Maison >développement back-end >Tutoriel Python >Comment puis-je désactiver la mise en mémoire tampon de sortie pour sys.stdout en Python ?
Désactivation de la mise en mémoire tampon de sortie dans l'interpréteur de Python pour sys.stdout
L'interpréteur de Python active la mise en mémoire tampon de sortie par défaut pour sys.stdout, un fichier de type objet qui accepte la sortie standard.
Désactivation de la mise en mémoire tampon Méthodes :
Pour désactiver la mise en mémoire tampon de sortie, il existe plusieurs approches :
python -u [script.py]
class Unbuffered(object): def __init__(self, stream): self.stream = stream def write(self, data): self.stream.write(data) self.stream.flush() def writelines(self, datas): self.stream.writelines(datas) self.stream.flush() def __getattr__(self, attr): return getattr(self.stream, attr) import sys sys.stdout = Unbuffered(sys.stdout)
Définition de cette variable sur une valeur non vide désactive buffering :
export PYTHONUNBUFFERED=1
Cette méthode consiste à ouvrir un nouveau descripteur de fichier sans mise en mémoire tampon :
import os sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
De plus, comme mentionné dans la question, les indicateurs globaux peuvent être définis par programme pendant l'exécution. Cependant, il ne semble pas y avoir d'indicateur global explicite qui désactive la mise en mémoire tampon de sortie.
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!