Cinco scripts Python para automatizar el procesamiento de CSV
Un repositorio con scripts de la librería estándar que validan esquema, comparan filas, normalizan delimitadores, transforman columnas y anonimizan datos en archivos CSV.

Automatización de tareas comunes en CSV
El día a día de un administrador de datos incluye la ingesta de archivos CSV procedentes de bases de datos, exportaciones de aplicaciones o trabajos batch. A menudo estos archivos sufren de delimitadores inconsistentes, errores de codificación, cambios de esquema o filas duplicadas. Los scripts presentados en el repositorio de GitHub de Balapriyac permiten abordar estos problemas sin instalar dependencias externas.
1. Validador de esquema
El script csv_schema_validator.py lee un archivo JSON con la definición del esquema: columnas obligatorias, tipos (int, float, date, string, email), patrones regex y la obligatoriedad de cada campo. Con csv.DictReader itera la tabla sin cargarla completa en memoria, aplica cada regla y produce un reporte de errores por fila y columna. Si alguna comprobación falla, el proceso termina con un código de salida distinto a cero, lo que facilita su uso como gate en pipelines.
2. Herramienta de diferencia por fila
Comparar dos versiones de un mismo CSV suele requerir abrir dos hojas en un visor. El script genera un reporte CSV con change_type, key, column_name, old_value y new_value. La diferencia se calcula a partir de un identificador (o combinación de columnas) y se filtra solo en los campos que han cambiado, evitando ruido.
3. Normalizador de delimitadores y codificación
Muchos CSV vienen con delimitadores de punto y coma, tabulaciones o con BOM que impiden su correcta lectura. El script detecta el delimitador con csv.Sniffer, la codificación probando varias opciones y reescribe el archivo en UTF‑8 con delimitador , y saltos de línea . El resultado se presenta en consola para auditar la transformación.
4. Transformador configurable de columnas
Con una configuración JSON se pueden renombrar, eliminar, reordenar y derivar columnas. Las derivaciones usan una sintaxis segura ({first_name} {last_name}) y funciones de conversión registradas (to_float, to_int). La lectura y escritura se hace con csv.DictReader y csv.DictWriter, manteniendo la memoria baja independientemente del tamaño del archivo.
5. Muestreador y anonimizador de campos
Para compartir datos de producción se necesita anonimizar columnas sensibles. El script toma una muestra aleatoria de filas y reemplaza los valores de columnas marcadas por placeholders consistentes y no reversibles, manteniendo relaciones entre filas. Este enfoque evita la exposición accidental de datos sensibles.
Estos scripts están disponibles en el repositorio de GitHub de Balapriyac:
- Repositorio principal: https://github.com/balapriyac/data-science-tutorials/tree/main/useful-python-scripts-csv-processing
- Script de validación de esquema: https://github.com/balapriyac/data-science-tutorials/blob/main/useful-python-scripts-csv-processing/csv_schema_validator.py
El uso de la librería estándar garantiza compatibilidad inmediata con cualquier entorno Python sin gestionar paquetes adicionales.
