Lathack

Manipulación de archivos con Python

En muchos lenguajes de programación es posible la manipulación de archivos, y Python no es la excepción. Para esto, hacemos uso de la función incorporada open(), la cual toma como argumento la ruta de un archivo y retorna una instancia del tipo file en la que podemos mencionar nuestro «modo» de manipulación.

Función open()

La sintaxis para esta función es la siguiente:

f = open(«archivo.txt», modo)

El modo es la forma de cómo se va a trabajar el archivo. Es decir, para leer, modo=»r». Sin embargo, cabe aclarar que este es el único modo que cuando se usa open() y, no se pasa de qué manera interactuar con el archivo, se toma automáticamente “r” por defecto.

Para escribir y crear se usa modo=»w», además en este modo si el archivo existe se sobrescribe. Y por último el modo=»a» (append) para añadir contenido al final del archivo si existe el mismo.

En cualquiera de los casos anteriores necesitamos especificar la ruta del archivo (ruta absoluta), la misma se escribe con doble barra para separar los directorios o barra invertida. Si no se especifica una ruta, el fichero se busca en el directorio actual (ruta relativa).

«C:\\Users\\user-example\\Desktop\\Python-directory\\archivo.txt»

«C:/Users/user-example/Desktop/Python-directory/archivo.txt»

Métodos de trabajo

read()

Cuando abrimos un archivo para leer, este método  retorna el contenido del archivo abierto en formato string.

Por ejemplo, supongamos que tenemos el archivo test.txt en nuestro escritorio. Para leerlo haríamos lo siguiente:

f = open(“C:/Users/lathack-user/Desktop/test.txt”,”r”)

print(f.read())

Out:

Este es un ejemplo de contenido en el archivo test

f.close()

Como podemos ver, no solo nos devuelve el contenido del archivo test.txt, sino que también, hemos especificado f.close().

Al trabajar con archivos es importante cerrarlo cuando acabamos de interactuar con ellos, a través del método close(). Aunque es verdad que los ficheros normalmente son cerrados y guardados automáticamente, es importante especificarlo para evitar tener comportamientos inesperados.

readline()

Con esta función leemos una sola línea del archivo, es decir, se aplica el caracter de fin de línea (\n). Entonces se retorna una cadena. Si quieres leer todas las líneas de un archivo, puedes usar readlines() que crea una lista, y cada elemento de esta es un renglón del archivo.

Por ejemplo, supongamos que tenemos el archivo test.txt con el siguiente contenido:

Por lo tanto, observemos las diferencias al usar readline() y readlines():

Manipulación de archivos con Python

write()

Por otro lado, cuando abrimos un archivo en modo escritura, usamos el método write()

f = open(«archivo.txt», «w»)

f.write(«Hola mundo!»)

Out:

11

f.close()

El resultado 11 indica la cantidad de caracteres que se agregaron al archivo.

Esta función graba una cadena en el archivo. Si trabajamos en modo “w” reemplazará todo el contenido del archivo. Si el archivo NO existe, lo crea. Recordemos que para añadir datos al final del archivo sin borrar información previa, el fichero debe abrirse en la modalidad append («a») y también se usa write() .

f=open(«archivo.txt», «a»)

f.write(«Otro ejemplo»)

Out:

12

f=open(«archivo.txt»)

print(f.read())

Out:

Hola mundo!Otro ejemplo

f.close()

Veamos un ejemplo en nuestra consola. En nuestro archivo test.txt tenemos el siguiente contenido:

Por lo tanto, procedemos a usar el método append para agregar la siguiente cadena:

Manipulación de archivos con Python

También podemos usar el método writelines() y pasarle una lista como argumento para que guarde el contenido.

Uso de la cláusula «with»

Para la manipulación de archivos en Python, es una buena práctica utilizar la sentencia with. La ventaja es que el archivo se cierra correctamente después de que finaliza su uso, incluso si se genera una excepción en algún momento.

Ejemplo de with escribiendo un archivo:

with open(«archivo.txt»,»w») as f:

f.write(«Hola Mundo!»)

Ahora veamos un ejemplo para leer un archivo. Recordemos que el parámetro «r» es opcional:

with open(«archivo.txt») as f:

texto=f.read()

Veamos un ejemplo en VSCode:

Supongamos que tenemos el siguiente archivo test.txt en nuestro escritorio:

Por lo tanto, si deseamos realizar algunos cambios:

Manipulación de archivos con Python

Como vemos, hemos usado a f.read() para leer el archivo, g.write() para renombrar lo escrito y, j.write(), con un salto de línea (\n), para agregar al archivo.

Entonces, nuestro archivo quedaría de la siguiente manera:

Recordar

Si no utilizamos with, debemos llamar a close() para cerrar el archivo y liberar inmediatamente los recursos del sistema. También, si usamos write() sin usar with o close() puede resultar en que no se escriban completamente los datos en el archivo.

1 comentario en “Manipulación de archivos con Python”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

siete + 18 =

Lathack
Scroll al inicio