Print et Popen ordre d'exécution - Python - Programmation
Marsh Posté le 16-07-2010 à 11:35:25
Salut à tous, J'ai un soucis au sein d'un de mes scripts python lorsque je tente de rediriger la sortie vers "tee". 95% des messages normalement affichés par mon programme n'apparaisse ni dans le terminal ni dans le fichier passé en argument à tee. J'ai donc réalisé un petit test et je tombe sur un comportement que je trouve étrange. En exemple :
from subprocess import Popen print "Normal print" p0 = Popen("echo Popen echo",shell=True)p0.wait()
Execution de : "python test.py"
Execution de "python test.py | tee log"
D'où vient le fait que l'ordre des print diffère suivant la manière dont la sortie est redirigée ? Merci d'avance. Cordialement, Sébastien.
Marsh Posté le 16-07-2010 à 11:53:07
Problème réglé. Cela vient du buffer stdout. Exécuter python en mode unbuffered "-u" remet les print dans l'ordre.
Make sure you enter the(*)required information where indicate.HTML code is not allowed
Marsh Posté le 16-07-2010 à 11:35:25
Salut à tous,
J'ai un soucis au sein d'un de mes scripts python lorsque je tente de rediriger la sortie vers "tee".
95% des messages normalement affichés par mon programme n'apparaisse ni dans le terminal ni dans le fichier passé en argument à tee.
J'ai donc réalisé un petit test et je tombe sur un comportement que je trouve étrange. En exemple :
Execution de : "python test.py"
Execution de "python test.py | tee log"
D'où vient le fait que l'ordre des print diffère suivant la manière dont la sortie est redirigée ?
Merci d'avance.
Cordialement,
Sébastien.
Message édité par Sebxoii le 16-07-2010 à 11:53:18