Redireccionar salida

Chema Cortes lslorg en ls-l.org
Lun Jul 25 00:28:41 CEST 2005


Quoting JoePC <joepc74 en gmail.com>:

> Existe alguna forma de redireccionar la salida estandar a una clase?

Puedes sustituir el objeto sys.stdout con cualquier clase que implente 
el mismo
interface para el método .write() . Puedes hacértelo tú mismo ó usar 
cualquiera
de los objetos afines como 'file' ó 'StringIO'.


import sys

class ReQuote:
   def write(self, msg):
     sys.__stdout__.write("--> "+msg+" <--\n")

#redirección
sys.stdout=ReQuote()
print "Mensaje Redirigido"
sys.stdout=sys.__stdout__




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