Volver a Python Intermedio

Entrada/Salida de Archivos

Python hace que trabajar con archivos sea sencillo usando funciones integradas y gestores de contexto.

Leer Archivos

# Leer archivo completo with open("datos.txt", "r", encoding="utf-8") as f: contenido = f.read() # Leer línea por línea (eficiente en memoria) with open("datos.txt", "r") as f: for linea in f: print(linea.strip()) # Leer todas las líneas en una lista with open("datos.txt", "r") as f: lineas = f.readlines()

Escribir Archivos

# Escribir (sobreescribe el existente) with open("salida.txt", "w", encoding="utf-8") as f: f.write("¡Hola, Mundo!\n") f.write("Segunda línea\n") # Modo de adición (append) with open("registro.txt", "a") as f: f.write("Nueva entrada de registro\n") # Escribir múltiples líneas lineas = ["línea 1\n", "línea 2\n", "línea 3\n"] with open("salida.txt", "w") as f: f.writelines(lineas)

Trabajar con JSON

import json # Escribir JSON datos = { "usuarios": [ {"id": 1, "nombre": "Alice", "activo": True}, {"id": 2, "nombre": "Bob", "activo": False}, ] } with open("usuarios.json", "w") as f: json.dump(datos, f, indent=2, ensure_ascii=False) # Leer JSON with open("usuarios.json", "r") as f: cargado = json.load(f) print(cargado["usuarios"][0]["nombre"]) # Alice

Trabajar con CSV

import csv # Escribir CSV filas = [["Nombre", "Edad", "Ciudad"], ["Alice", 30, "Ciudad de México"], ["Bob", 25, "Madrid"]] with open("personas.csv", "w", newline="", encoding="utf-8") as f: writer = csv.writer(f) writer.writerows(filas) # Leer CSV como diccionarios with open("personas.csv", "r", encoding="utf-8") as f: lector = csv.DictReader(f) for fila in lector: print(fila["Nombre"], fila["Edad"])

Pathlib (Rutas de Archivo Modernas)

from pathlib import Path # Crear rutas base = Path("datos") config = base / "config" / "ajustes.json" # Verificar existencia if config.exists(): contenido = config.read_text() # Crear directorios config.parent.mkdir(parents=True, exist_ok=True) # Escribir/Leer texto config.write_text('{"debug": true}', encoding="utf-8") texto = config.read_text(encoding="utf-8") # Listar archivos for p in Path("src").glob("**/*.py"): print(p) # Información del archivo print(config.name) # ajustes.json print(config.stem) # ajustes print(config.suffix) # .json print(config.parent) # datos/config

Archivos Temporales

import tempfile import os with tempfile.NamedTemporaryFile(mode="w", suffix=".txt", delete=False) as tmp: tmp.write("Datos temporales") ruta_tmp = tmp.name # Usar ruta_tmp... os.unlink(ruta_tmp) # Limpieza

Siempre usa with (gestor de contexto) para operaciones con archivos — garantiza que el archivo se cierre incluso si ocurre una excepción.