Ok .. Por lo tanto, probablemente, un ejemplo es una buena manera de explicar este problemade impresión como la supresión de la salida estándar pitón
Así que tener algo como esto:
if __name__=="__main__"
result = foobar()
sys.stdout.write(str(result))
sys.stdout.flush()
sys.exit(0)
Ahora este script se está llamando desde un rubí script ... y básicamente analiza el resultado allí. Pero foobar() tiene una gran cantidad de declaraciones de impresión ... y stdout vacía todas esas impresiones también. ¿Hay alguna manera (además de registrar mathods) de modificar algo aquí que suprime automáticamente esas impresiones y simplemente vacía este resultado? Gracias
impresionante .. justo lo que necesitaba :) – Fraz
¿Qué hay de usar 'sys.stdout = open (os.devnull, 'w')' en lugar de 'StringIO()'? – ovgolovin
@ovgolovin: definitivamente razonable si no hay expectativas de que alguna vez necesites la salida. Con StringIO puede recuperarlo si es necesario antes de restablecer el valor original de 'stdout'. –