Cómo guardar la salida de impresión de Python en un archivo de texto



¡Cómo descubrí cómo exportar la salida de Python directamente a un archivo de texto! — ¡Por fin!

Sinceramente, me ha pasado. Escribes código Python, lo ejecutas y la salida simplemente aparece en la consola. Está bien para comprobaciones rápidas, pero ¿y si quieres guardarla para más tarde? Antes copiaba y pegaba y luego me daba cuenta de que había olvidado la mitad. Así que, después de probar y fallar (sobre todo probar, pero también fallar), finalmente encontré una forma bastante sencilla de enviar la salida de mi script directamente a un .txtarchivo. Pensé en compartirla, porque quizás le ahorre a alguien un par de horas de frustración.

Poniendo en marcha el script básico

Lo primero es tener un script de Python que funcione. Normalmente, simplemente creo un main.pyarchivo. Empieza a escribir el código ahí; tiene sentido, ¿verdad? Es difícil redirigir la salida si el script está flotando en el IDE o ni siquiera está guardado. En mi antigua ASUS, estaba enterrado en los menús avanzados, ¡así que conozco la dificultad de encontrar el lugar correcto! En fin, ejecuta el script desde una terminal o el símbolo del sistema. En Windows, es PowerShell o CMD; en Linux/Mac, solo la Terminal. Asegúrate de estar en la carpeta correcta al ejecutarlo.

Abrir un archivo en modo de escritura

Esta parte me confundió al principio: abrir el archivo de salida.open()La función de Python es tu aliada. Básicamente, haces esto:

with open('output.txt', 'w') as file: # your code here 

Significa 'w'modo de escritura, así que si el archivo existe, se borra primero. Si prefieres añadirlo a un archivo existente, cámbialo a 'a'«anexar», pero por ahora prefiero empezar de cero. Un aviso: en cualquier sistema, el archivo se creará en tu directorio de trabajo actual a menos que proporciones una ruta completa. Puedes comprobar dónde se ejecuta tu script con:

import os print(os.getcwd())

Redirección print()a su archivo de texto

Este es el paso crucial. Normalmente, print()solo envía la salida a la consola. Pero si pasas un fileargumento, se guarda en ese archivo. Por ejemplo:

print('Here’s my output', file=file)

Así que, en lugar de saturar tu terminal, esto hace que todo se ejecute en output.txt. Descubrí que es más fácil mantener el código ordenado simplemente añadiendo el file=fileargumento cada vez que imprimes. De lo contrario, si quieres redirigir todas las salidas estándar temporalmente, puedes intercambiarlas sys.stdoutcon el identificador de archivo, pero, sinceramente, eso es más complicado y solo lo probé una vez; al final no lo necesité.

No olvides cerrar el archivo

Este era un gran error que cometía constantemente: olvidar cerrar el archivo. Si no lo cierras, la salida podría permanecer en un búfer y nunca escribirse en el disco. Lo bueno de la withinstrucción es que se encarga de esto automáticamente, así que no tienes que acordarte de llamar a file.close(). Es más limpio, seguro y fiable. Una vez que el bloque termina, todo se guarda y se cierra correctamente.

Ejecutar el script y comprobar su salida

Una vez que todo esté configurado, simplemente ejecuta tu script con:

python main.py

o, si estás en Linux/Mac y tu configuración predeterminada es Python 3 como python3:

python3 main.py

Deberías ver la salida dentro output.txt. De lo contrario, revisa la ruta del script, asegúrate de que se esté ejecutando o busca errores ocultos. A veces, mis scripts se bloqueaban silenciosamente o se saltaban la impresión, así que tuve que añadir algunas printsentencias para verificar su ejecución.

Solo un breve resumen: no es ninguna ciencia

  • Crea tu archivo Python ( main.py)
  • Abrir un archivo en modo escritura ( with open('output.txt', 'w') as file:)
  • Úselo print(..., file=file)para la salida que desea guardar
  • Confíe en el withbloque para cerrar automáticamente el archivo
  • Ejecute su script y verifiqueoutput.txt

Sinceramente, una vez que lo entendí, la depuración fue mucho más fácil, especialmente durante esas ejecuciones largas o si necesitaba registros para más adelante. También se podía hacer algo así python main.py > output.txtdirectamente desde la terminal, pero me gustó este enfoque porque es un poco más controlado en el script.

Y si generas una gran cantidad de datos, añadirlos file.flush()ocasionalmente puede garantizar que se guarden en tiempo real y no se queden en la memoria. Es un buen detalle si haces streaming o registro.

En fin, espero que esto ayude. Me llevó muchísimo tiempo hacerlo bien y me estaba arrancando los pelos antes de darme cuenta de lo sencillo que es. Espero que a alguien más le resulte útil y se ahorre un fin de semana de trasteo.¡Que disfrutes programando!



¿Te resultó útil este artículo?