Hice un script de Python que se comunica con un servidor web usando un bucle infinito. Quiero registrar todos los datos de comunicación en un archivo y también monitorearlos desde el terminal al mismo tiempo. así que usé el comando tee como este.
python client.py | tee logfile
sin embargo, no obtuve nada de la terminal ni del archivo de registro. la secuencia de comandos de Python está funcionando bien. ¿que está sucediendo aquí? ¿Me estoy perdiendo de algo?
se agradecería algún consejo. gracias de antemano.
sys.stdout.flush()
de su secuencia de comandos cada vez que inicie sesión en una línea.Respuestas:
De
man python
:Entonces, lo que puedes hacer es:
O usando
tee
:fuente
script
, que también deshabilita el almacenamiento en búfer y además hace queC-a
funcionen las secuencias de control ( , teclas de cursor, etc.): stackoverflow.com/a/39269661/15690 .tee
se ve como una tubería (que es) y no el híbrido: escribe en la consola. Nota: el comportamiento también podría controlarse dentro de un programa de Python.python -u client.py | tee >> logfile
no funcionaría. El>>
introduciría otro caso de escritura en búfer en un archivo. Eso es lo quetee -a
resuelve.