7.2 Ficheros
En programación, casi todo lo que hacemos ocurre en memoria mientras el programa está en marcha. Pero en cuanto el programa se cierra, esa información se pierde. Por eso existen los ficheros: permiten guardar datos de forma permanente para usarlos más tarde, compartirlos o procesarlos.
En esta unidad se aprenderá a trabajar con ficheros de forma correcta y segura, no solo "para que funcione", sino para que el código sea fiable, mantenible y profesional.
1️⃣ El inconveniente de los ficheros
Trabajar con ficheros implica aprender a prevenir errores y a recuperarse bien cuando algo falla, porque un fichero no depende solo de Python. Depende del Sistema Operativo y de lo que ocurra fuera del programa.
Por ejemplo:
- El archivo puede no existir.
- Puede existir, pero no tener permisos.
- Puede estar abierto por otro programa.
- Puede tener una codificación distinta (típico con acentos y ñ).
- Puede contener datos "sucios" (espacios raros, líneas vacías, formatos incorrectos).
- Puede ser tan grande que no se pueda cargar entero en memoria.
2️⃣ La idea clave: del dato al archivo y del archivo al dato
En general, cuando trabajamos con ficheros seguimos siempre este camino:
- Abrir el fichero de forma segura.
- Leer o escribir según lo que necesitemos.
- Procesar el contenido (limpiar, filtrar, transformar).
- Guardar resultados si corresponde.
- Cerrar correctamente el fichero (aunque haya errores).
Esta unidad se organiza para que se comprenda ese flujo y se aplique en casos reales.
3️⃣ Qué vamos a aprender en este bloque
A lo largo de los apartados se trabajará con varios tipos de archivos y técnicas:
- Ficheros de texto: lectura, escritura y manejo del puntero.
- Procesamiento de datos: limpieza, filtrado y conversión de tipos.
- CSV: datos tabulares, uso del módulo
csvy variantes de separadores. - JSON: estructuras anidadas, serialización y errores típicos.
- POO + ficheros: guardar y reconstruir objetos con patrones como
to_dictyfrom_dict. - Manejo de errores: capturas específicas, programación defensiva y logging.
- Sistema de archivos: rutas, carpetas,
osvspathliby búsquedas con patrones.
- Usa
withpara gestionar ficheros de forma segura. - Trabaja en
utf-8para evitar problemas de codificación. - Prefiere EAFP: intenta la operación y captura errores concretos.