Redirigir la salida de impresión a un archivo en Python
-
Utilice la función
write()
para imprimir la salida a un archivo en Python -
Utilice la función
print()
para imprimir la salida a un archivo en Python -
Utilice
sys.stdout
para imprimir la salida en un archivo en Python -
Utilice la función
contextlib.redirect_stdout()
para imprimir la salida en un archivo en Python
Hay un tipo más de tarea en el manejo de archivos que se puede realizar usando Python, es decir, redirigir la salida a un archivo externo. Básicamente, una salida estándar se puede imprimir en un archivo elegido por el propio usuario. Hay muchas formas de llevarlo a cabo.
En este tutorial, veremos algunos métodos para redirigir la salida a un archivo en Python.
Utilice la función write()
para imprimir la salida a un archivo en Python
Esta es una función incorporada de Python que ayuda a escribir o agregar un texto específico en un archivo. w
y a
son las 2 operaciones en esta función que escribirán o agregarán cualquier texto en un archivo. w
se usa cuando el usuario desea vaciar el archivo antes de escribir algo en él. Mientras que a
se usa cuando el usuario solo desea agregar texto al texto existente en el archivo.
Ejemplo:
with open("randomfile.txt", "a") as o:
o.write("Hello")
o.write("This text will be added to the file")
Tenga en cuenta que la función open()
se utiliza aquí para abrir el archivo. a
en el código indica que se ha añadido texto al archivo.
Utilice la función print()
para imprimir la salida a un archivo en Python
En este método, primero, llamamos a la función open()
para abrir el archivo deseado. Después de eso, la función print()
se usa para imprimir el texto en el archivo. Siempre es elección del usuario utilizar el operador w
o el operador a
.
Ejemplo:
with open("randomfile.txt", "w") as external_file:
add_text = "This text will be added to the file"
print(add_text, file=external_file)
external_file.close()
Tenga en cuenta que la función close()
también se utiliza para cerrar el archivo en el código anterior después de abrirlo con open()
. Después de llamar a la función close()
, el archivo no se puede leer y no se puede escribir nada más. Si el usuario intenta realizar algún cambio en el archivo después de llamar a la función close()
, se generará un error.
Utilice sys.stdout
para imprimir la salida en un archivo en Python
El módulo sys
es un módulo Python integrado que el usuario utiliza para tratar con varias partes del entorno de ejecución en Python. Para utilizar sys.stdout
, primero se debe importar el módulo sys
.
sys.stdout
se usa cuando el usuario quiere mostrar la salida directamente en la consola principal de la pantalla. La forma de la salida se puede variar, por ejemplo, puede ser una solicitud de entrada, una declaración de impresión o simplemente una expresión. En este método, imprimiremos una declaración en un archivo de texto.
Ejemplo:
import sys
file_path = "randomfile.txt"
sys.stdout = open(file_path, "w")
print("This text will be added to the file")
Tenga en cuenta que antes de utilizar sys.stdout
como objeto para abrir e imprimir la declaración en el archivo de texto, el usuario debe definir una ruta definida del archivo; de lo contrario, ninguna de las operaciones se puede realizar en el archivo.
Utilice la función contextlib.redirect_stdout()
para imprimir la salida en un archivo en Python
El módulo contextlib
se usa generalmente con la instrucción with
.
La función contextlib.redirect_stdout()
ayuda a redirigir el sys.stdout
a algún archivo de forma temporal mediante la configuración de un administrador de contexto.
Ejemplo:
import contextlib
file_path = "randomfile.txt"
with open(file_path, "w") as o:
with contextlib.redirect_stdout(o):
print("This text will be added to the file")
Como puede ver, la instrucción with
se usa con las operaciones del módulo contextlib
.
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn