17. Persistencia de Datos: Lectura y Escritura de Archivos ☕
El poder de la Persistencia
Hasta ahora, cada vez que cerrabas tu programa de Python, todos los datos (productos, ventas, clientes) se borraban de la memoria RAM. Para construir aplicaciones reales, necesitas persistir la información. Es decir, guardarla en el disco duro para poder recuperarla después.
En Python, la forma más limpia y moderna de abrir y cerrar archivos es usando la instrucción with open(). Esta asegura que el archivo se cierre correctamente incluso si ocurre un error inesperado.
1. Archivos CSV con Lista de Listas 📊
Los archivos CSV (Valores Separados por Comas) son el estándar para guardar tablas de datos. En Python, los representamos de forma muy natural como una lista de listas (arreglo bidimensional): [[codigo, nombre, precio]].
Por defecto, un archivo CSV separa los campos con comas (
,). Sin embargo, en sistemas en español o cuando abres datos en Excel, la coma se usa como decimal. Por eso, es muy común cambiar el delimitador a punto y coma (;) usando el parámetro delimiter.
2. Archivos de Texto (TXT): Generando Boletas y Reportes 🧾
Cuando un cliente compra en nuestra cafetería, debemos imprimirle un voucher o boleta de venta. Además, al finalizar la jornada laboral, nos interesa registrar un reporte de caja acumulando el total vendido.
Para esto usamos el formato de texto plano (.txt) y el modo de apertura "a" (append / añadir al final), que nos permite registrar nuevas líneas sin borrar el contenido anterior.
3. Estructuras de Diccionario y JSON 📦
Aunque el formato CSV es genial para listas sencillas, cuando queremos almacenar estructuras de datos más complejas (por ejemplo, productos que además tienen categorías, niveles de stock, descripción o propiedades anidadas), la mezcla de Diccionarios de Python y JSON es la mejor opción.
☕ Mini Desafío: Cambiar Delimitadores
Crea un pequeño script que lea un archivo llamado pedidos.txt que usa la barra vertical (|) como delimitador de datos en formato: cliente|producto|cantidad|precio_total. Haz que tu programa cargue la información de cada línea e imprima un resumen ordenado en la consola.
👁️ Ver solución recomendada
4. Proyecto Integrador Final: Cafetería Express ☕🚀
Este proyecto une los tres tipos de persistencia estudiados. Permite gestionar una cafetería real con las siguientes funciones:
- Importar Catálogo (CSV): Carga los productos usando una lista de listas
[[codigo, nombre, precio]]y delimitador;. - Vender Productos: Pide código y cantidad, calcula el total, genera un archivo
TXTcon el voucher de la boleta y actualiza un reporte general de ventas. - Exportar Estado (JSON + Diccionario): Guarda todas las estadísticas finales del negocio y los productos con su stock restante estructurados en un archivo JSON.