Option pour désactiver le tampon stdout / stderr en Python

J'ai écrit un article parce que je l'oublie parfois et vois des yeux douloureux.

Si vous l'exécutez tel quel dans le shell, la commande suivante devrait fonctionner comme prévu, comme écrit. Sortie 1 et attendre 3 secondes, puis sortie 2.

$ python -c 'import time; print(1); time.sleep(3); print(2)'
1
2
$

Si vous passez un tuyau à travers cela, il ne sortira que si la taille du tampon du tuyau est accumulée.

Dans l'exemple ci-dessus,

$ python -c 'import time; print(1); time.sleep(3); print(2)' | cat
1
2
$

Je viens de le faire passer à `` chat '', mais les lignes 1 et 2 sortent au même moment après 3 secondes. Pour le dire comme ça, celui qui dit "le tuyau est bouché". Même s'il est écrit dans un fichier, il est également écrit avec un retard.

Si vous souhaitez supprimer ce comportement, utilisez l'option -u```.

$ python -u -c 'import time; print(1); time.sleep(3); print(2)' | cat
1
2
$

↑ Attendez 3 secondes après la sortie de 1, puis 2 sort.

http://docs.python.jp/3/using/cmdline.html#cmdoption-u

pythonunbufferedLe même effet peut être obtenu en mettant une chaîne de caractères non vide dans la variable d'environnement.

Recommended Posts

Option pour désactiver le tampon stdout / stderr en Python
Pour vider stdout en Python
Connectez-vous au site Web en Python
Parler avec Python [synthèse vocale]
Comment développer en Python
Publier sur Slack en Python
Lire les données des tampons de protocole avec Python3
Convertir Markdown en PDF en Python
Comment collecter des images en Python
Comment utiliser SQLite en Python
Désactiver le protocole python2.6 ssl3 sur centos6
Dans la commande python, python pointe vers python3.8
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
6 façons d'enchaîner des objets en Python
Comment utiliser PubChem avec Python
Comment gérer le japonais avec Python
Une alternative à `pause` en Python
J'ai essayé d'implémenter PLSA en Python
[Introduction à Python] Comment utiliser la classe en Python?
Essayez de vous connecter à qiita avec Python
Installez Pyaudio pour lire des vagues en python
J'ai essayé d'implémenter la permutation en Python
Méthode pour créer un environnement Python dans Xcode 6
Comment définir dynamiquement des variables en Python
Comment faire R chartr () en Python
Envoyer des e-mails à plusieurs destinataires avec Python (Python3)
J'ai essayé d'implémenter PLSA dans Python 2
Pour définir le codage par défaut sur utf-8 en python
Decorator pour éviter UnicodeEncodeError dans Python 3 print ()
Comment utiliser BigQuery en Python
Connectez-vous à Slack à l'aide de requêtes en Python
Comment obtenir stacktrace en python
Comment afficher la table quatre-vingt-dix-neuf en python
Un moyen simple d'utiliser Wikipedia avec Python
Comment extraire une zone de polygone en Python
Comment vérifier la version d'opencv avec python
J'ai essayé d'implémenter ADALINE en Python
[Python] pandas à bien comprendre en 10 minutes
Lancer le Webhook entrant vers Mattermost en Python
Module pour générer le mot N-gramme en Python
Pour référencer des variables d'environnement en Python dans Blender
Je voulais résoudre ABC159 avec Python
J'ai essayé d'implémenter PPO en Python
Comment changer de version de Python dans cloud9
Comment régler le contraste de l'image en Python
Comment utiliser __slots__ dans la classe Python
Comment remplir dynamiquement des zéros avec Python
Gérer les packages python à installer dans des conteneurs
Pour faire fonctionner la station d'horodatage en Python
Comment utiliser les expressions régulières en Python
Convertir de Markdown en HTML en Python
Comment afficher Hello World en python
Ajouter une série à la colonne dans les pandas python
Comment utiliser is et == en Python
Comment écrire Ruby to_s en Python
Introduction aux vecteurs: Algèbre linéaire en Python <1>
Convertir une URL absolue en URL relative en Python
Introduction à la vérification de l'efficacité Chapitre 1 écrit en Python
Comment utiliser la bibliothèque C en Python