Obtenez une sortie standard en temps réel avec le sous-processus Python

Acquiert la sortie standard de la commande exécutée par le sous-processus de manière asynchrone ligne par ligne.

import sys
import subprocess


def get_lines(cmd):
    '''
    :param cmd:commande str à exécuter.
    :rtype: generator
    :return:Sortie standard(Ligne par ligne).
    '''
    proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    
    while True:
        line = proc.stdout.readline()
        if line:
            yield line
        
        if not line and proc.poll() is not None:
            break


if __name__ == '__main__':
    for line in get_lines(cmd='du ~/'):
        sys.stdout.write(line)

Recommended Posts

Obtenez une sortie standard en temps réel avec le sous-processus Python
Journal de sortie au format JSON avec journalisation standard Python
Rendre la sortie standard non bloquante en Python
Démarrez avec Python avec Blender
Obtenez des champs de chat en direct YouTube en temps réel avec l'API
Obtenez des données supplémentaires vers LDAP avec python
Convertir en chaîne lors de la sortie de la sortie standard avec le sous-processus Python
Lire la sortie standard d'un sous-processus ligne par ligne en Python
UnicodeEncodeError lutte avec la sortie standard de python3
Commençons avec TopCoder en Python (version 2020)
Comment obtenir la différence de date et d'heure en secondes avec Python
Obtenez et convertissez l'heure actuelle dans le fuseau horaire local du système avec python
Obtenez des données de séries chronologiques de k-db.com avec Python
[Python] Récupérez les fichiers dans le dossier avec Python
Lire la sortie du sous-processus, ouvrir en temps réel
Comment générer "Ketsumaimo" en standard en Python
Essayez de convertir des vidéos en temps réel avec OpenCV
Sortie du temps d'exécution de python
Obtenir la date en Python
Sortie japonaise avec Python
Obtenez date avec python
python Obtenir l'heure actuelle
Visualisez les informations du capteur d'accélération de la carte micro-ordinateur en temps réel avec mbed + Python
Obtenez toutes les entrées standard utilisées dans la programmation paiza et compétition avec int (python)
[Python] Obtenez les nombres dans l'image graphique avec OCR
Affiche l'heure à partir du moment où le programme a été lancé en python
Obtenez des résultats au format dict avec Python psycopg2
Utilisez communiquer () lors de la réception de la sortie dans un sous-processus Python
Sortie japonaise lors de l'utilisation de python dans Visual Studio
Entrez en contact avec la programmation fonctionnelle en JavaScript ou Python 3
Obtenez le code du pays avec python
Grattage au sélénium en Python
Obtenez le mois dernier en Python
Exploitez LibreOffice avec Python
Obtenez la chronologie Twitter avec Python
Grattage avec chromedriver en python
Entrée standard avec limite de temps
Débogage avec pdb en Python
Essayez la sortie Python avec Haxe 3.2
Tester la sortie standard avec Pytest
Gérer les sons en Python
Grattage avec du sélénium en Python
Grattage avec Tor en Python
Matrice transposée au standard Python
Tweet avec image en Python
Obtenir la taille du terminal en Python
Obtenir explicitement EOF en python
Mesure du temps d'exécution avec Python avec
Combiné avec ordinal en Python
Obtenir l'ID de thread avec python
Commencez avec Python! ~ ② Grammaire ~
Obtenez des stocks avec Python
Obtenez des notes Evernote en Python
Obtenir le répertoire personnel avec python
Obtenir un événement de clavier avec python
Synchronisation de l'heure (Windows) avec Python
Obtenez des informations sur l'alambic avec Python
Lire la sortie Fortran avec python
Obtenez des synonymes japonais avec Python
Essayez de convertir des vidéos de caméra Web / caméra vidéo en temps réel avec OpenCV