Rendre la sortie standard non bloquante en Python

La sortie standard a un tampon, mais elle est bloquée lorsqu'elle est remplie. Vous pouvez rencontrer des situations où vous souhaitez abandonner la sortie autant que le blocage. A ce moment là

import fcntl, sys, os
fl = fcntl.fcntl(sys.stdout.fileno(), fcntl.F_GETFL)
fl = fl | os.O_NONBLOCK
fcntl.fcntl(sys.stdout.fileno(), fcntl.F_SETFL, fl)

En faisant cela

while True:
    try:
        print("hoge" * 100)
    except IOError, (errno, strerror):
        sys.stderr.write("I/O error(%s): %s\n" % (errno, strerror))

Quand j'ai écrit

$ ./hoge.py | ./Programme lent
I/O error(11): Resource temporarily unavailable
I/O error(11): Resource temporarily unavailable
...

Il se comportera comme

Recommended Posts

Rendre la sortie standard non bloquante en Python
Sortie japonaise avec Python
Comment générer "Ketsumaimo" en standard en Python
Ne faites pas test.py en Python!
Matrice transposée au standard Python
Créer un bookmarklet en Python
Rendre Opencv disponible en Python
Segfo python en 2 lignes
Lire la sortie Fortran avec python
Obtenez une sortie standard en temps réel avec le sous-processus Python
Journal de sortie au format JSON avec journalisation standard Python
Segfo python en une ligne
Sortie de la liste du vendredi Premium 2017 en Python
Changer la destination de sortie standard en un fichier en Python
Segfo python en trois lignes
Exporter et exporter des fichiers en Python
Lire la sortie standard d'un sous-processus ligne par ligne en Python
Entrée / sortie de données en Python (CSV, JSON)
Créer une animation GIF d'art ASCII avec Python
Arborescence de sortie des fichiers en Python
UnicodeEncodeError lutte avec la sortie standard de python3
Faisons un calcul de combinaison avec Python
Exécuter régulièrement des tâches de type cron en Python
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
sortie d'apprentissage python
[Python] Entrée standard
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python