Cómo leer un archivo en Python (texto y JSON)

Aprenda a leer archivos en Python. Domine la declaración abierta, la línea de lectura, las líneas de lectura y el manejo seguro de excepciones de archivos.

Pruebe esta solución en el Editor

Descripción general

El manejo de archivos es una habilidad esencial para cualquier desarrollador de Python. La lectura de datos de archivos le permite procesar documentos de texto, configuraciones, registros, bases de datos y conjuntos de datos estructurados. Python hace que las operaciones con archivos sean notablemente sencillas a través de su función incorporada `open()`.

Cuando se trabaja con archivos, la mejor práctica más importante es utilizar la instrucción "with", que crea un administrador de contexto. El patrón `with open(...)` garantiza que el archivo se cierre de forma segura y adecuada tan pronto como la ejecución abandone el bloque, incluso si ocurre una excepción dentro. Olvidarse de cerrar archivos puede provocar pérdidas de memoria, corrupción de archivos y bloquear recursos de otros procesos del sistema.

Python proporciona varios métodos para leer datos una vez que se abre un archivo. El método `.read()` devuelve todo el contenido del archivo como una sola cadena. El método `.readline()` lee una sola línea, lo que lo hace perfecto para iterar sobre archivos gigantes que no caben en la memoria. El método `.readlines()` lee todas las líneas y las devuelve como una lista de cadenas. Comprender qué método utilizar evita el agotamiento de la memoria y hace que sus programas sean más escalables.

Código y salida de ejecución

Este script demuestra cómo leer el contenido de un archivo de forma segura utilizando el administrador de contexto, lectura línea por línea y manejo de errores.

# Writing a dummy file first
with open("sample.txt", "w") as f:
    f.write("Line 1: Welcome to PyRun!\nLine 2: Python runs in the browser.\nLine 3: Clean and simple.")

# 1. Read entire file contents
with open("sample.txt", "r") as file:
    content = file.read()
    print("--- Entire File ---")
    print(content)

# 2. Read line-by-line (Memory efficient for large files)
print("\n--- Line by Line ---")
with open("sample.txt", "r") as file:
    for line in file:
        print("Read line:", line.strip())
Salida terminal
--- Entire File ---
Line 1: Welcome to PyRun!
Line 2: Python runs in the browser.
Line 3: Clean and simple.

--- Line by Line ---
Read line: Line 1: Welcome to PyRun!
Read line: Line 2: Python runs in the browser.
Read line: Line 3: Clean and simple.

Implementación paso a paso

  • Utilice la instrucción with open("filename", "r") as file para abrir de forma segura el archivo para leerlo.
  • Llame a file.read() para cargar todo el contenido del archivo en una variable.
  • Itere directamente sobre el objeto del archivo utilizando un bucle for para leerlo línea por línea de manera eficiente.
  • Especifique siempre la codificación (por ejemplo, codificación="utf-8") para compatibilidad de caracteres internacionales.

Preguntas frecuentes

¿Por qué debería utilizar la instrucción with para abrir archivos?

La instrucción with crea un administrador de contexto que cierra automáticamente el archivo cuando se sale del bloque, incluso si se producen errores.

¿Cómo manejo un FileNotFoundError?

Envuelva su declaración open() en un bloque try-except, capturando FileNotFoundError: try: with open(...) ... excepto FileNotFoundError: print("¡Archivo no encontrado!").

Temas relacionados

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.