Exécuter puis récupérer la sortie d'un script Python en temps réel et non en un seul bloc
Bonjour,
voici un script tout bête nommé test.py :
Code:
1 2 3 4 5 6
| #!/usr/bin/env python
#coding=utf-8
import time
for i in range (1,5):
print i
time.sleep(3) |
Je veux le lancer et récupérer les lignes écrites par le script comme dans une console classique ligne par ligne. J'ai le code suivant mais il traite la sortie en un seul bloc et non en temps réel :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| #!/usr/bin/env python
#coding=utf-8
import os
import subprocess
fileToTest = 'cheminCompletDuScriptCiDessus'
os.chdir(os.path.dirname(fileToTest))
x = subprocess.Popen( ["python.exe", fileToTest],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE )
print x.stdout.read() |
Comment modifier ce code pour obtenir l'affichage des lignes en temps réel ?
Toute info. est la bienvenue.
PS : ce post a été impulsé par la lecture de cet autre.