Soy bastante nuevo en Python, así que todavía estoy aprendiendo el idioma. Una de las cosas que encontré fue la reasignación de sys.stdout para cambiar la salida predeterminada de impresión. Así que escribí esto como una prueba:sys.stdout no se reasigna a sys .__ stdout__
import sys
sys.stdout = open('log.txt','a')
print('hey')
sys.stdout.close()
sys.stdout = sys.__stdout__
print('hi')
'Hey' se escribe en el archivo, pero 'hola' muestra en ninguna parte. Sin embargo, esto funciona como se esperaba, y 'bueno' se escribe en el archivo, y 'hola' se imprime a la salida de la consola:
import sys
sys.__stdout__ = sys.stdout
sys.stdout = open(r'C:\Users\Vincent\Documents\Python\log.txt','a')
print('hey')
sys.stdout.close()
sys.stdout = sys.__stdout__
print('hi')
En pocas palabras es un pequeño problema eso no importa demasiado, yo soy Me pregunto si hay una razón discernible por la cual no está funcionando como debería. He probado esto en Windows 7 Home Premium con IDLE y pyscripter en v3.2.3 y mi portátil python v3.2.1.
¿Cómo se ejecuta este script? No dijiste si la primera 'impresión' funcionó o no. * Cuando asigno alguna otra variable a sys.stdout al principio y la vuelvo a cambiar, funciona * Sería mejor escribir un código que ilustre esto y describir su salida. –