Los programas de Python pueden leer la información de archivos, así como escribir datos en archivos. Si bien las variables antiguas simples son una buena manera de almacenar datos mientras se ejecuta un programa, si desea acceder a esos datos después de que el programa haya terminado, debe guardarlos en un archivo. La lectura de archivos le permite trabajar con una amplia gama de información y la escritura en archivos hace posible que los usuarios continúen donde lo dejaron la próxima vez que ejecuten el programa. Puede leer datos de archivos, escribir texto en archivos e incluso almacenar estructuras de Python, como listas, en archivos de datos.


Leer de un archivo

Para leer de un archivo, su programa necesita abrir el archivo y luego leer el contenido del archivo. Puede leer todo el contenido del archivo de una vez o leer el archivo línea por línea. La withdeclaración asegura que el archivo se cierre correctamente cuando el programa haya terminado de acceder al archivo.

Leer un archivo completo a la vez

Para empezar, tenemos un archivo de texto en el directorio de nuestro proyecto Python para que podamos trabajar con él. Es solo un archivo simple, creado usando un bloc de notas que tiene un texto básico.
archivo de texto de Python

salida de lectura de archivo python

¿Qué es esa withpalabra clave? La withpalabra clave es un administrador de contexto. Es como un atajo para trabajar con archivos, ya que se encarga de abrir y cerrar el archivo automáticamente por usted. Por ejemplo, si necesita utilizar un archivo, deberá abrirlo y recordar cerrarlo una vez que haya terminado de trabajar con él. La withdeclaración abierta se encarga de esto por usted.

Dentro del withcontexto, usamos la open()función para abrir el archivo y devolver el objeto de archivo correspondiente. Si el archivo no se puede abrir, se lanza un error OSError. Usando el objeto de archivo que ahora está disponible para nosotros, podemos usar el read()método para leer el archivo. Este método devuelve el número especificado de bytes del archivo y el valor predeterminado es lo -1que significa leer el archivo completo.

Mostrando los atributos y propiedades del archivo

atributos y propiedades del archivo

Leer un archivo línea por línea

La otra opción para leer un archivo es hacerlo línea por línea. Así es como se hace.

bucle de python sobre el archivo

Esta vez, vemos muchos espacios en blanco adicionales. ¿Porqué es eso? La razón de esto es que cada línea que se lee del archivo tiene un carácter de nueva línea al final de la línea. El uso de la print()función agrega su propio carácter de nueva línea. Para evitar esto, podemos usar el rstrip()método que elimina las líneas en blanco adicionales al imprimir en la pantalla.

ejemplo de python rstrip

Modificar la salida durante la iteración

A medida que itera sobre un archivo para generar la salida línea por línea, puede actuar en cada iteración si lo desea. Aquí tenemos un archivo de texto con el siguiente contenido.
método de reemplazo de Python

Este código iterará a través de cada línea del archivo y reemplazará 'español' con 'mexicano' si lo encuentra.

Python reemplazar método en iteración

El código anterior hace uso de un nuevo método que aún no hemos visto, el seek()método. El método seek () utiliza un puntero para realizar un seguimiento de dónde estamos en el archivo. Tanto la escritura como la lectura mueven el puntero de búsqueda, y si queremos leer el archivo después de escribir o leer el archivo varias veces, debemos volver a poner el puntero de búsqueda en cero. Podemos hacer esto ejecutando el método seek () o cerrando y volviendo a abrir el archivo en nuestro código.

Almacenar las líneas en una lista

En este fragmento de código, podemos ver cómo leer un archivo en una variable de listaAl imprimirlo, vemos que el contenido del archivo es de hecho una lista. También vemos cómo recorrer la lista para imprimir el contenido del archivo.

Python leyó el archivo en la lista


Escribir en un archivo

Puede pasar el 'w'argumento a la open()función para decirle a Python que desea escribir en un archivo. Esto borrará cualquier cosa en el archivo si ya existe, así que tenga cuidado de no sobrescribir ningún dato que quisiera conservar.

Crear y escribir en un archivo

Python w ejemplo abierto

Escribir varias líneas en un archivo

escritura de archivo de múltiples líneas de Python

Agregar a un archivo

Pasar el 'a'argumento le dice a Python que desea agregar al final de un archivo existente. Note que esta vez, todavía tenemos los datos en el archivo del último ejemplo. Este es el comportamiento de adición en acción.

ejemplo de archivo adjunto de Python


Rutas de archivo

La open()función busca el archivo en el mismo directorio donde se almacena el programa que se está ejecutando. Para abrir un archivo desde una subcarpeta, puede utilizar una ruta relativa. También puede utilizar una ruta absoluta si lo desea.

Abrir un archivo de una subcarpeta

python Abre un archivo desde una subcarpeta

Abrir un archivo con una ruta absoluta

python Abriendo un archivo con una ruta absoluta


Almacenar datos con JSON

Python tiene un módulo JSON que le permite volcar estructuras de datos de Python en un archivo y luego cargar esos datos desde el archivo la próxima vez que se ejecute el programa. JSON es un formato de datos popular que se utiliza en casi todos los lenguajes de programación modernos, por lo que puede compartir este tipo de datos con otros que quizás no estén usando Python. Es importante asegurarse de que los datos que está tratando de cargar existan antes de trabajar con ellos y, si no es así, debe usar el manejo de excepciones para administrarlos.

Usando json.dump () para almacenar datos

Python escribe json en el archivo

Usando json.load () para leer datos

python lee json desde el archivo

Usando FileNotFoundError para administrar datos

Ejemplo de Python FileNotFoundError


Leer y escribir archivos sin la withpalabra clave

Los ejemplos hasta ahora muestran la lectura, escritura y adición de datos mientras se utiliza la palabra clave withA continuación se muestran las formas de realizar estas operaciones con archivos sin uso with.

Abra un archivo para escribir y créelo si no existe

Abra el archivo para agregar texto al final

Escribe algunas líneas de datos en el archivo.

Cierre el archivo cuando termine

Abra la copia de seguridad del archivo y lea el contenido

Compruebe para asegurarse de que el archivo se abrió

use la función read () para leer el archivo completo

readlines () lee las líneas individuales en una lista


Usar archivos temporales con Python

Para usar un archivo temporal en su programa Python, puede importar el módulo temp_file. El código siguiente crea un archivo temporal y lo almacena en la variable temp_file. Luego, podemos almacenar algunos datos en el archivo temporal. En este caso, estamos reservando la fecha del 4 de julio de 2020 para no olvidarnos de ver algunos fuegos artificiales. Tenga en cuenta que tuvimos que usar esa b minúscula. Esto es para convertir la cadena en un objeto de bytes, ya que eso es lo que espera el método write () cuando usa el módulo tempfile. Ahora recuerde que al leer o escribir en un archivo, el puntero de búsqueda se mueve. Es por eso que lo volvemos a establecer en 0 antes de intentar leer el archivo temporal.


Trabajar con el módulo ZipFile

Es fácil crear y trabajar con archivos de archivos en Python. Veamos algunos ejemplos de cómo funciona esto. Trabajaremos con un par de archivos de texto que tenemos en nuestro directorio, boats.txt y characters.txt.
archivo de texto para archivar con python
segundo archivo de texto para archivar con python

Cree un archivo FileArchive.zip

Agregue dos archivos al archivo y ciérrelo

Enumere el contenido del archivo

['barcos.txt', 'caracteres.txt']

Obtener metadatos de archivos en el archivo.

<Nombre de archivo ZipInfo = 'envío.txt' modo de archivo = '- rw-rw-rw-' tamaño_archivo = 84>
<Nombre de archivo ZipInfo = 'characters.txt' filemode = '- rw-rw-rw-' file_size = 59>

<Nombre de archivo ZipInfo = 'envío.txt' modo de archivo = '- rw-rw-rw-' tamaño_archivo = 84>

Leer archivos en el archivo

X-Wing
Halcón Milenario
Ala en Y
Ala B
El fantasma
Caza estelar Jedi
La bola de fuego

Bowser
Princesa Peach
Sapo
Luigi
Wario
Yoshi
Rosalina

Extraiga uno o varios archivos del archivo.


Cómo leer y escribir archivos en Python Resumen

Python proporciona métodos integrados para trabajar con archivos. Puede abrir archivos, escribirles datos, volver a leerlos, etc. Todas las cosas que espera hacer con los archivos se pueden hacer en Python. No es necesario importar una biblioteca para leer y escribir archivos. Usar la función de apertura incorporada de Python para obtener un objeto de archivo es el primer paso para trabajar con archivos. Esto devuelve un objeto de archivo que vimos en varios de los ejemplos de este tutorial. Hay varios métodos y atributos de los objetos de archivo que se pueden utilizar para conocer el archivo que abrió. También se pueden utilizar para manipular el archivo. Entonces, en este tutorial, miramos leer de un archivo, mostrar los atributos y propiedades del archivo, leer un archivo línea por línea, almacenar líneas de un archivo en una lista, escribir en un archivo, escribir varias líneas en un archivo, Almacenar datos con JSON