En Python, ¿puedo redireccionar la salida de la función de impresión a stderr?

Hay muchas funciones de print ( python 2.7 ) en mi progtwig. ¿Hay alguna manera de que pueda agregar algunas líneas y luego toda la salida se puede redirigir a stderr ? Lo que quiero es códigos python pero no linux pipeline.

Por ejemplo, mi progtwig es como:

 print 'hello world' 

Me gustaría añadir algunos códigos como:

 redirect_output_to_stderr() print 'hello world' 

Entonces toda la salida puede ser redirigida a stderr .

Sé que print >> sys.stderr, 'hello world' puede lograr mi objective, pero ¿es alguna forma de evitar que se modifiquen los códigos existentes?

Haz esto en tu método:

 import sys sys.stdout = sys.stderr 

En Python 2.7 puedes hacer:

 import sys print >> sys.stderr, "To stderr." 

O puedes importar el comportamiento desde 3.x:

 from __future__ import print_function import sys print('To stderr.', file=sys.stderr) 

La redefinición de la print es una característica de Python 3+. Sin embargo, puede cambiar sys.stdout a std.stderr .

Ver: otra pregunta.