Redirigir salida estandar

Diego Chaparro dchapar.madrid en sinvest.es
Mie Jun 4 16:32:59 CEST 2003


pbarrera en tsc.uc3m.es wrote:
> On Wed, 2003-06-04 at 16:22, Diego Chaparro wrote:
>>	¿Cómo puedo redirigir a un fichero la salida estándar de un programa? 
>>El programa tiene muchos print, y quiero la salida del mismo se guarde 
>>en un fichero. He probado con:
>>	import sys
>>	sys.stdout = open ("fichero.log", "a")
>
> A mi si me funciona eso. Con un print lo guarda al fichero. Lo único que
> hay que hacer es cerrar el stdout al final:
> sys.stdout.close()

	El problema es que mi programa no acaba nunca, y necesito ir viendo lo 
que va escribiendo.

>>	Pero no me escribe nada en el fichero. He visto que utilizando la 
>>función sys.stdout.write lo haría bien aunque no lo he probado, pero no 
>>quiero cambiar todos los print que tengo por el sys.stdout.write.
>>
>>	También he probado con: programa.py > fichero.log, pero tampoco 
>>funciona :-(
 >
> Esto también me funciona. 

	Imagino que será por el mismo motivo, mi programa no acaba nunca y por 
eso no escribe en el fichero. ¿Hay alguna forma de que vaya escribiendo 
en el fichero continuamente?

Gracias de todos modos.




Más información sobre la lista de distribución Python-es