Redireccionar el stdout
Francisco Callejo
fcallejo en arrakis.es
Dom Mar 17 13:41:52 CET 2002
El domingo, 17 de marzo de 2002, Marcos Sánchez Provencio escribió:
> No es para ayudar, es para liarlo más.
> ¿Por qué no funciona esto?
> ####################################
> import sys
>
> class Output:
> def __init__(self):
> self.text=""
>
> def write(self,str):
> self.text+=str
>
> class sysTrucada:
> def __init__(self):
> self.stdout=Output()
>
>
> codigo="""
> print "Hola Mundo"
> print sys.stdout
> """
>
> s=sysTrucada()
>
> exec codigo in {'sys':s}
>
> print ">>>>",s.stdout.text
>
Pues no lo sé, pero si sustituyes la variable `codigo' así, sí funciona:
codigo="""
sys.stdout.write("Hola Mundo\n")
sys.stdout.write(str(sys.stdout) + "\n")
"""
Supongo que el funcionamiento de `print' no es simplemente escribir en
sys.stdout.
--
Francisco Callejo Giménez
fcallejo en arrakis.es
Linux registered user #53999
Más información sobre la lista de distribución Python-es