Lorsque vous essayez d'écrire la sortie standard d'un script Python dans un fichier texte ( python script.py > log
), le fichier texte est créé au démarrage de la commande, mais le contenu réel n'est pas écrit jusqu'à la fin du script Python. Par exemple:
script.py:
import time
for i in range(10):
print('bla')
time.sleep(5)
Imprime vers stdout toutes les 5 secondes lorsqu'il est appelé avec python script.py
, mais lorsque j'appelle python script.py > log
, la taille du fichier journal reste égale à zéro jusqu'à la fin du script. Est-il possible d'écrire directement dans le fichier journal, de sorte que vous puissiez suivre la progression du script (par exemple, utiliser tail
)?
EDIT Il s'avère que ça python -u script.py
fait l'affaire, je ne connaissais pas la mise en tampon de stdout.