logo cosasdedevs

Cómo leer y escribir archivos en Python

Cómo leer y escribir archivos en Python

My Profile
Abr 03, 2020

¡Hola! En el tutorial de hoy quiero hablar de como trabajar con ficheros con Python. Para ello usaremos la función open que nos permitirá crear, leer y escribir en el archivo que queramos.

La función open tiene varios modos de apertura de un archivo, nosotros vamos a ver los tres más importantes que serán los que al final vamos a usar el 99% de las veces. Si queréis ver todos los modos lo podéis hacer desde la documentación de la función open.

Leer archivos

Para leer un archivo tenemos la opción de no pasarlo por parámetro, ya que es el modo por defecto, también tenemos la opción de pasar el parámetro "r" para que sea más explícito de esta forma:

f= open("mi_archivo.txt", "r")

Una vez realizado el open, si queremos guardar toda la información del archivo en una variable lo haremos con read().

archivo = f.read()

Si por el contrario lo queremos leer línea a línea, usaremos f.readlines() como vemos en el siguiente ejemplo:

archivo_por_lineas = f.readlines()
for linea in archivo_por_lineas:
    print(linea)

Hay que tener en cuenta que si no existe el archivo, lanzará una excepción de tipo IOError y se parará la ejecución del programa.

Para cerrar el archivo simplemente usaremos close().

f.close()

También podemos usar la declaración de with que realiza el manejo de excepciones para hacer que el código sea más limpio y ahorrarnos tener que cerrar el archivo, ya que se encarga este se encarga de hacerlo.

Así quedaría la lectura del archivo usando with:

with open("mi_archivo.txt", "r") as f:

    archivo_por_lineas = f.readlines()
    for linea in archivo_por_lineas:
        print(linea)

Escribir un archivo

Para escribir en un archivo tenemos dos formas de hacerlo, con "w" que creará el archivo si no existe y lo truncará si existe, por lo que lo dejará vacío, así que tened cuidado con eso, y el modo "a" que lleva el puntero al final del archivo y todo que escribas se añadirá a partir de ahí. Este sería el modo óptimo para actualizar ficheros.

Ahora veamos como escribir en algunos archivos:

with open("mi_archivo.txt", mode="w") as f:
    for i in range(10):
        f.write(f"Añadido el número: {i}\n")

En este caso creará el archivo si no existe, lo truncará e insertará la información con write().

Si lo que queremos hacer es actualizar un fichero existente utilizaremos el modo "a".

with open("mi_archivo.txt", mode="a") as f:
    for i in range(10, 20):
        f.write(f"Añadido el número: {i}\n")

En este caso creará el archivo si no existe y si existe y tiene datos, llevará el puntero al final del archivo.

Si abrís el archivo, veréis que salen algunos caracteres extraños donde tenemos los caracteres con acento, eso es porque por defecto la función open no utiliza ninguna codificación. Esto lo podemos solucionar pasando el parámetro encoding al leer y escribir nuestros archivos:

with open("mi_archivo.txt", mode="w", encoding="utf8") as f:
    for i in range(10):
        f.write(f"Añadido el número: {i}\n")

with open("mi_archivo.txt", mode="a", encoding="utf8") as f:
    for i in range(10, 20):
        f.write(f"Añadido el número: {i}\n")

Con esto tenemos todo lo básico para trabajar con archivos, si queréis profundizar más en Python podéis ver mí tutorial sobre como crear un CRUD con Python.

688 vistas

Nos tomamos en serio tu privacidad

Utilizamos cookies propias y de terceros para mejorar la experiencia del usuario a través de su navegación. Si pulsas entendido aceptas su uso. Ver política de cookies.

🐍 Sígueme en Twitter

Si te gusta el contenido que subo y no quieres perderte nada, sígueme en Twitter y te avisaré cada vez que cree contenido nuevo 💪
Luego ¡Te sigo!