Lire la sortie standard d'un sous-processus ligne par ligne en Python

Aperçu

Je pense que vous pouvez créer un processus enfant en utilisant le module subprocess, mais vous voudrez peut-être faire quelque chose comme surveiller le journal de cela, alors prenez note.

Processus enfant

Le nombre est émis en standard toutes les 0,5 seconde.

child.py


import time
import sys
i = 0
while True:
   print i
   sys.stdout.flush()
   i += 1
   time.sleep(0.5)

Le but est de faire flush () et d'expulser les données accumulées dans le tampon.

Processus parent

Chaque fois qu'un enfant sort, il sera sorti.

parent.py


import subprocess
proc = subprocess.Popen(['python','child.py'],stdout=subprocess.PIPE)

print "ready"
for line in iter(proc.stdout.readline,''):
   print line

résultat

ready
1
2
3
4
5
(Ce qui suit est omis)

La partie à lire à partir du processus enfant peut être réalisée de différentes manières en créant un thread et en le lisant de manière asynchrone et en plaçant les données dans la file d'attente.

Recommended Posts

Lire la sortie standard d'un sous-processus ligne par ligne en Python
Lisez le fichier ligne par ligne avec Python
Lisez le fichier ligne par ligne avec Python
Sortie sous la forme d'un tableau python
Différentes façons de lire la dernière ligne d'un fichier csv en Python
Changer la destination de sortie standard en un fichier en Python
[Python] Lire la ligne spécifiée dans le fichier
Sortie du nombre de cœurs de processeur en Python
Récupérer l'appelant d'une fonction en Python
Copiez la liste en Python
Lire la sortie du sous-processus, ouvrir en temps réel
Lire ligne par ligne à partir d'un fichier avec Python
Utilisez communiquer () lors de la réception de la sortie dans un sous-processus Python
Regrouper par éléments consécutifs d'une liste en Python
Un mémorandum sur la mise en œuvre des recommandations en Python
Lire la sortie Fortran avec python
[Python] Changer la couleur du texte et la couleur d'arrière-plan d'un mot clé spécifique dans la sortie d'impression
Découvrez la largeur apparente d'une chaîne en python
Obtenez le nombre d'éléments spécifiques dans la liste python
[Note] Importation de fichiers dans le répertoire parent en Python
Google recherche la chaîne sur la dernière ligne du fichier en Python
Trouver les valeurs propres d'une vraie matrice symétrique en Python
Rendre la sortie standard non bloquante en Python
Demandez à python de lire la sortie de la commande
__init__ appelé par wxPython ou Tkinter était un appel __init__ de la classe héritée en Python
Ce qui semble être un modèle pour la partie d'entrée standard du pro de la concurrence en python3
Convertir en chaîne lors de la sortie de la sortie standard avec le sous-processus Python
[Python] Mémo des phrases fréquemment utilisées dans les scripts Python
Comment déterminer l'existence d'un élément sélénium en Python
Une analyse simple des données de Bitcoin fournie par CoinMetrics en Python
[Compris dans la figure] Gestion de l'environnement virtuel Python par Pipenv
Comment vérifier la taille de la mémoire d'une variable en Python
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
L'histoire de la création d'un pilote standard pour db avec python.
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
Une fonction qui mesure le temps de traitement d'une méthode en python
Lisez le fichier en Python avec un chemin relatif depuis le programme
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
Vérifiez le comportement du destroyer en Python
Arborescence de sortie des fichiers en Python
Ecrire le test dans la docstring python
Afficher une liste d'alphabets en Python 3
Exécuter l'interpréteur Python dans le script
Le résultat de l'installation de python sur Anaconda
[python] [meta] Le type de python est-il un type?
Principes de base pour exécuter NoxPlayer en Python
UnicodeEncodeError lutte avec la sortie standard de python3
Pandas du débutant, par le débutant, pour le débutant [Python]
J'ai essayé de résumer le contenu de chaque paquet enregistré par Python pip en une seule ligne
À la recherche du FizzBuzz le plus rapide en Python
L'histoire du traitement A du blackjack (python)
Si vous voulez un singleton en python, considérez le module comme un singleton
[Python] Comment mettre n'importe quel nombre d'entrées standard dans la liste
Vérifions la chaîne d'octets en mémoire du nombre flottant flottant en Python
Recevez une liste des résultats du traitement parallèle en Python avec starmap
Obtenez une instance datetime à tout moment de la journée en Python
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
Comment trier en spécifiant une colonne dans le tableau Python Numpy.
Dessiner un graphique d'une fonction quadratique en Python