Escrito por:
Python ofrece una amplia variedad de estructuras que te permiten guardar información como lo son los Diccionarios o las Listas, sin embargo, si la aplicación se cierra, esa información se pierde. Para que esto no suceda, podemos hacer uso de archivos para guardar la información y así poder acceder alla nuevamente. A continuación veremos un pequeño ejemplo sobre cómo leer la información de un archivo txt
.
1Hola, este es un archivo de ejemplo. 2Estamos aprendiendo a leer archivos en Python. 3 4¡Es emocionante!
1with open("prueba.txt", "r") as archivo: 2 3 print("Leer todas las líneas de un archivo:\n") 4 print(archivo.read())
output del código:
1Leer todas las líneas de un archivo: 2 3Hola, este es un archivo de ejemplo. 4Estamos aprendiendo a leer archivos en Python. 5 6¡Es emocionante!
En este ejemplo, queremos leer la información guardada en el archivo prueba.txt
, para esto, podemos hacer uso del método open()
de Python, este método recibe dos parámetros, el primero es el nombre del archivo que deseamos abrir y el segundo es el modo en que deseamos abrirlo, en nuestro ejemplo "r"
(read). Luego hacemos uso del método read()
para imprimir la información en la consola.
Como se dijo anteriormente, para leer el contenido de un archivo necesitamos el método open()
de Python, este método recibe dos parámetros, el primero es el nombre del archivo que deseamos abrir, y el segundo es el modo en que deseamos abrir el archivo, este segundo parámetro puede recibir diferentes valores, en la siguiente tabla se pueden observar los más relevantes con una pequeña descripción de cada uno:
Valor | Descripción |
---|---|
"r" | Abre el archivo en modo de lectura. Puedes leer el contenido del archivo, pero no puedes modificarlo ni agregarle contenido. |
"r+" | Abre el archivo en modo de lectura y escritura. Puedes leer y modificar el contenido del archivo. |
"w" | Abre el archivo en modo de escritura. Si el archivo ya existe, su contenido se eliminará y se puede escribir nuevo contenido, además si el archivo no existe, se creará uno nuevo. |
"w+" | Es similar a "r+" pero a diferencia de este, crea un archivo nuevo si no existe y si el archivo ya existe y tiene información, elimina toda la información del archivo y agrega la información nueva. |
"a" | Abre el archivo en modo adjuntar. Si el archivo ya existe, podrás agregar contenido al final de la información ya existente. Si no existe, se creará uno nuevo. |
"a+" | Abre el archivo en modo de adjuntar y lectura. Puedes leer y agregar contenido al final del archivo. |
"x" | Abre el archivo en modo de creación. Crea un nuevo archivo para escritura, pero si el archivo ya existe, lanzará un error. |
"x+" | Abre un archivo en modo de creación y lectura/escritura. Similar a "w+" , pero lanza un error si el archivo ya existe. |
"b" | Modo de archivo binario, se utiliza junto con otros modos como "rb" (lectura binaria) "wb" (escritura binaria). |
A continuación veremos un ejemplo sobre cómo leer un archivo txt
y algunos de los métodos más utilizados.
Nota, en estos ejemplos usaremos la sintaxis
with open(nombre_archivo, modo_lectura) nombre_variable
ya que esta sintaxis se encarga de cerrar el archivo automáticamente una vez que hayamos terminado de trabajar con el.
1Este es un texto de prueba. 2Aprenderemos a usar el método readline() para leer solamente una línea de un archivo, 3 4y también aprenderemos a usar el método read() para leer todas las líneas del archivo.
1with open("prueba.txt", "r", encoding="utf-8") as archivo: 2 print("Archivo en la línea 1: ", archivo.readline()) 3 print("Archivo en la línea 2: ", archivo.readline()) 4 5 print("--------------------------------------") 6 print("Todas las líneas del archivo:") 7 archivo.seek(0) 8 print(archivo.read()) 9 10 print("\n--------------------------------------") 11 print("Extraer todas las líneas del archivo en una lista:") 12 archivo.seek(0) 13 data = archivo.readlines() 14 print(data)
output del código:
1Archivo en la línea 1: Este es un texto de prueba. 2Archivo en la línea 2: Aprenderemos a usar el método readline() para leer solamente una línea de un archivo, 3 4-------------------------------------- 5Todas las líneas del archivo: 6Este es un texto de prueba. 7Aprenderemos a usar el método readline() para leer solamente una línea de un archivo, 8 9y también aprenderemos a usar el método read() para leer todas las líneas del archivo. 10 11-------------------------------------- 12Extraer todas las líneas del archivo en una lista: 13[ 14 'Este es un texto de prueba.\n', 15 'Aprenderemos a usar el método readline() para leer solamente una línea de un archivo,\n', 16 '\n', 17 'y también aprenderemos a usar el método read() para leer todas las líneas del archivo.' 18] 19
El contenido de un archivo se puede leer con varios métodos de Python, en este ejemplo vemos los tres métodos más relevantes, el método readline()
lee solo una linea del archivo, si lo llamas tres veces seguidas entonces tendrás las tres primeras líneas del archivo, además le puedes pasar un entero como parámetro que le indica cuántos caracteres debe leer, por ejemplo si le pasas 4 como parámetro readline(4)
te retornará el texto "Este" ya que esos son los primeros 4 caracteres de la primera línea, el método read()
muestra todas las líneas del archivo y el método readlines()
te retorna una lista con todas las líneas del archivo.
Para modificar el contenido de un archivo, el método open()
de Python ofrece varias alternativas, a continuación veremos algunos ejemplos sobre cómo modificar el contenido de un archivo txt
.
Suponiendo el siguiente archivo de texto, prueba.txt
1La Tierra, nuestro planeta azul, es un remanso de vida en el vasto cosmos. Océanos y 2continentes se entrelazan en una danza de biodiversidad. 3Montañas se alzan mientras valles se extienden, creando paisajes diversos.
Veremos dos de los ejemplos más relevantes sobre cómo puedes modificar este archivo. Para el primer ejemplo usaremos el método open()
y le pasaremos como segundo parámetro el valor de "w"
(write) que te permite modificar el archivo original pero elimina los valores anteriores, para el segundo ejemplo usaremos el valor de "a"
(append) que te permite modificar el archivo sin la necesidad de eliminar el contenido que tenía anteriormente.
1with open("prueba.txt", "w", encoding="utf-8") as archivo: 2 nueva_linea = "\nEsta es una nueva línea de texto agregada al archivo prueba.txt" 3 archivo.write(nueva_linea)
Con la ejecución del código anterior, el archivo prueba.txt
quedaría de la siguiente manera:
1Esta es una nueva línea de texto agregada al archivo prueba.txt
Para modificar el contenido de un archivo podemos usar el método write()
de Python, este método recibe cómo parámetro el texto con el que deseas modificar el archivo, en este ejemplo hacemos uso de método open()
y le pasamos cómo segundo parámetro el valor de "w"
, este valor te permite modificar el contenido de un archivo pero antes de agregar el contenido nuevo elimina el contenido que tenía anteriormente el archivo.
1with open("prueba.txt", "a", encoding="utf-8") as archivo: 2 nueva_linea = "\n \nEsta es una nueva línea de texto agregada al archivo prueba.txt" 3 archivo.write(nueva_linea)
Al ejecución el código anterior, el archivo prueba.txt
quedaría de la siguiente manera:
1La Tierra, nuestro planeta azul, es un remanso de vida en el vasto cosmos. Océanos y 2continentes se entrelazan en una danza de biodiversidad. 3Montañas se alzan mientras valles se extienden, creando paisajes diversos. 4 5Esta es una nueva línea de texto agregada al archivo prueba.txt
En este ejemplo, de nuevo hacemos uso del método open()
de Python pero esta vez le pasamos cómo segundo parámetro el valor de "a"
que te permite modificar el contenido de un archivo pero a diferencia del valor "w"
este agrega el nuevo contenido al final del contenido ya existente. Estos dos valores son muy importantes y puedes usarlos dependiendo de la tarea que necesites realizar en el archivo, recuerda que al agregar el símbolo "+"
al final de cada uno de estos valores "w+"
, "a+"
podras leer y escribir en un archivo.
Los archivos txt
pueden ser utilizados para almacenar información cómo por ejemplo una lista de diccionarios con cualquier tipo de información. A continuación veremos un ejemplo sobre cómo usar un archivo txt
para guardar la información de tres usuarios de prueba.
Para poder ingresar una lista de diccionarios en un archivo txt
primero necesitamos pasarlo a un tipo de dato json
(JavaScript Object Notation), para esto haremos uso del módulo json
(Chequea este artículo para recordar cómo usar los modulos en Python) de Python.
1import json 2 3data = [ 4 {"nombre": "Thomas", "apellido": "Smith", "edad": 35}, 5 {"nombre": "Jonathan", "Doe": "Smith", "edad": 53}, 6 {"nombre": "Jane", "apellido": "Watson", "edad": 29} 7] 8 9with open("prueba.txt", "w+", encoding="utf-8") as archivo: 10 json.dump(data, archivo, indent=4)
Al ejecutar este código, el archivo prueba.txt
debería verse de la siguiente manera:
1[ 2 { 3 "nombre": "Thomas", 4 "apellido": "Smith", 5 "edad": 35 6 }, 7 { 8 "nombre": "Jonathan", 9 "Doe": "Smith", 10 "edad": 53 11 }, 12 { 13 "nombre": "Jane", 14 "apellido": "Watson", 15 "edad": 29 16 } 17]
En este ejemplo, hacemos uso del módulo json
y el método dump()
para poder convertir la lista de diccionarios en una archivo de tipo json
y guardarlo en el archivo prueba.txt
, el método dump()
recibe tres parámetros, el primer parámetro es la información que deseas guardar en el archivo txt
, este parámetro es obligatorio, el segundo parámetro es la variable archivo
que le indica al método donde guardar la información, este parámetro también es obligatorio, el tercer parámetro es la variable indent=4
que le indica al método como formatear la información dentro del archivo txt
, este parámetro es opcional.
Para leer el archivo txt
y convertir la información de nuevo en una lista, también necesitamos usar el módulo json
, este módulo tiene un método llamado load()
que convierte la información de tipo json
nuevamente en una lista de diccionarios, cómo se muestra en el siguiente ejemplo:
1import json 2 3data = [ 4 {"nombre": "Thomas", "apellido": "Smith", "edad": 35}, 5 {"nombre": "Jonathan", "Doe": "Smith", "edad": 53}, 6 {"nombre": "Jane", "apellido": "Watson", "edad": 29} 7] 8 9with open("prueba.txt", "w+", encoding="utf-8") as archivo: 10 # El método dump() ingresa la información en el archivo txt. 11 json.dump(data, archivo, indent=4) 12 13 # El método load() lee la información del archivo txt y la convierte nuevamente en una lista de diccionarios. 14 archivo.seek(0) 15 datos_recuperados = json.load(archivo) 16 17 print("Información de los usuarios: ", datos_recuperados)
output del código:
1Información de los usuarios: [ 2 {'nombre': 'Thomas', 'apellido': 'Smith', 'edad': 35}, 3 {'nombre': 'Jonathan', 'Doe': 'Smith', 'edad': 53}, 4 {'nombre': 'Jane', 'apellido': 'Watson', 'edad': 29} 5]
El método load()
recibe cómo parámetro la variable archivo
que le indica cual archivo debe leer y convertir de nuevo en código de Python, este método retorna la información de los usuarios que se guarda en la variable datos_recuperados
, por último simplemente imprimimos los resultado en la consola.
La manipulación de archivos es una habilidad esencial en la programación, en Python podemos manipular cualquier tipo de archivo ya sea un archivo txt
, un archivo de tipo json
, etc... En este artículo hemos explorado cómo leer y modificar archivos con ayuda de la función open()
de Python, además vimos cómo agregar y modificar estructuras de datos más complejas como una lista de diccionarios.
Espero que este artículo te haya sido de utilidad y que te haya ayudado a entender mejor cómo manipular archivos con ayuda de los métodos de Python, recuerda practicar lo más que puedas y crear tus propias aplicaciones para reforzar los conocimientos aprendidos en este artículo.
¡Divierte Aprendiendo a manipular archivos con ayuda de Python! 😉👋