BookinglyTech News
Software

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.

2 min de lecturaKDnuggets0 vistas

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:

El uso de la librería estándar garantiza compatibilidad inmediata con cualquier entorno Python sin gestionar paquetes adicionales.