En el trabajo normal, a veces necesitamos guardar la salida de la consola en un archivo
1. Línea de comando con> sobrescribir y >> agregar escritura
para i en rango ( 10000 ): imprimir (i)
#Escriba la anulación de salida de la consola en el archivo python myprint.py> myprint.txt
#Agregue la salida de la consola al archivo python myprint.py >> myprint.txt
2. Salida sys.stdout a un archivo
import sys tiempo de importación f = abierto ( " myprint.txt " , " w + " ) sys.stdout = f para i en el rango ( 1000 ): print (i * 9 )
Desventajas: solo se puede guardar en un archivo, pero la consola no tiene salida
3. Use el parámetro de archivo en la función de impresión
import sys tiempo de importación f = abierto ( " myprint.txt " , " w + " ) para i en el rango ( 100 ): print ( " - {} - " .format (i ** 2 ), file = f, flush = Verdadero) print ( " - {} - " .format (i ** 2 ), file = sys.stdout) time.sleep ( 0.5 )
Guarde la salida de la consola en un archivo al instante
El parámetro de archivo en la función de impresión, archivo = f, salida al archivo; archivo = sys.stdout, salida al terminal; flush = True, actualización instantánea
4. Implementar con clases
importar sys class Logger ( objeto ): def __init __ (self, filename = ' default.log ' , stream = sys.stdout): self.terminal = stream self.log = open (filename, ' a ' ) def write (self, mensaje): self.terminal.write (mensaje) self.log.write (mensaje) def flush (self): pass sys.stdout = Logger (stream = sys.stdout) # ahora funciona print ( ' imprimir algo ' ) print (" salida " )