Cómo Leer un Archivo en Python

La forma más rápida de leer un archivo en Python es con la sentencia with y el método read():

with open("datos.txt", "r") as archivo:
    contenido = archivo.read()

¿Cuándo necesitas esto?

Leer archivos es una de las tareas más comunes en Python. Lo necesitas cada vez que tu programa carga configuraciones, procesa reportes, lee logs o abre cualquier archivo de texto. En esta guía aprenderás cómo leer un archivo en Python paso a paso, desde el ejemplo más simple hasta el más seguro.

Método 1: Abrir un archivo con open() y read()

La forma más directa de leer un archivo en Python es abrirlo y llamar al método read().

archivo = open("datos.txt", "r")
contenido = archivo.read()
archivo.close()
print(contenido)

El primer argumento es el nombre del archivo y el segundo, "r", significa modo lectura. Siempre cierra el archivo con close() para liberar los recursos.

Método 2: Usar la sentencia with (recomendado)

La mejor práctica en Python es usar la sentencia with. Cierra el archivo automáticamente, incluso si ocurre un error.

with open("datos.txt", "r") as archivo:
    contenido = archivo.read()
print(contenido)

Esta es la forma recomendada para leer un archivo en Python porque es más segura y más fácil de leer.

Método 3: Leer línea por línea o en una lista

Si el archivo es muy grande, leerlo todo de golpe puede consumir mucha memoria. Puedes iterar sobre el archivo para procesarlo línea a línea.

with open("datos.txt", "r") as archivo:
    for linea in archivo:
        print(linea, end="")

El método readlines() devuelve una lista donde cada elemento es una línea del archivo.

with open("datos.txt", "r") as archivo:
    lineas = archivo.readlines()
print(lineas)

Método 4: Especificar codificación UTF-8

Para leer archivos con acentos o caracteres especiales, indica la codificación utf-8. Esto es esencial cuando trabajas con textos en español.

with open("datos.txt", "r", encoding="utf-8") as archivo:
    contenido = archivo.read()

Comparativa de métodos

Método Ventaja Cuándo usarlo
open() + read() Simple y directo Scripts rápidos, archivos pequeños
with open() Seguro, cierra automáticamente Siempre recomendado
Bucle for Bajo consumo de memoria Archivos muy grandes
readlines() Devuelve una lista de líneas Cuando necesitas cada línea
encoding="utf-8" Lee acentos y símbolos Archivos en español u otros idiomas

Errores comunes y solución

FileNotFoundError: el archivo no existe

Si el archivo no existe, Python lanza un FileNotFoundError. Usa try y except para manejarlo correctamente.

try:
    with open("datos.txt", "r", encoding="utf-8") as archivo:
        contenido = archivo.read()
except FileNotFoundError:
    print("El archivo no existe")

UnicodeDecodeError: el archivo tiene otra codificación

Si el archivo fue guardado en otro formato, agrega el argumento encoding correcto en la llamada a open().

Preguntas frecuentes

¿Qué significa la "r" en open()?

La "r" significa modo lectura. Abre el archivo para leer su contenido sin modificarlo.

¿Necesito cerrar el archivo con la sentencia with?

No. La sentencia with cierra el archivo automáticamente. Por eso es la forma recomendada para leer un archivo en Python.

¿Cómo leo un archivo línea por línea?

Usa un bucle for sobre el objeto archivo, como se muestra en el Método 3.

Contenido relacionado

Palabras clave relacionadas

cómo leer un archivo en python, leer archivo python, open python, leer archivo de texto python, python with open, readlines python, utf-8 python, archivo no encontrado python

Guarda este tutorial y compártelo si te fue útil. Encuentra más guías prácticas en la sección how-to de Python.