Media · Practica · 30 min · Tiempo estimado
Validar un CSV con Python antes de automatizar tareas
Ejecuta un ejemplo local para detectar identificadores duplicados y filas incompletas, sin modificar el archivo original ni instalar paquetes.
Por Eric Muriel

Antes de empezar
Vas a conseguir: Un informe reproducible: dos filas válidas, un duplicado y una fila incompleta.
- Python 3 con los módulos estándar csv y pathlib; editor de texto y terminal.
- Saber abrir una carpeta en la terminal. No necesitas una API ni una cuenta de pago.
Ejemplo ejecutado y comprobado localmente con Python 3.9.6, incluidas entradas vacías, duplicadas y cabeceras incorrectas.
01Prepara la carpeta de trabajo
Crea una carpeta vacía, descarga los dos archivos de este tutorial y guárdalos dentro. Abre la terminal en esa carpeta. Comprueba la versión con el comando siguiente. En Windows puedes usar py en lugar de python3 en todos los comandos.
python3 --versionComprueba el resultado
La terminal muestra Python 3.x y los archivos se llaman check_csv.py y tasks.csv.
Si no te sale
Si no encuentra Python, instala una versión compatible con tu sistema desde python.org. Si el editor añadió .txt al nombre del script, quítalo.
02Inspecciona los datos antes de ejecutar
Abre tasks.csv como texto, no como hoja de cálculo. La primera línea contiene los nombres de columna. El ID T-1 aparece dos veces y la última fila no tiene ID. El código usa la biblioteca csv para respetar comillas y separadores.
id,task
T-1,Review draft
T-1,Review draft
T-2,Check source
,Missing identifierComprueba el resultado
Cuatro filas de datos, más la cabecera. No cambies el original durante esta primera prueba.
Si no te sale
Si ves punto y coma en lugar de comas, vuelve a descargar el ejemplo. El script exige exactamente las columnas id,task.
03Ejecuta y compara el informe
Ejecuta el comando desde la misma carpeta. El script lee el archivo y muestra un resumen; no escribe ni envía datos. Un ID válido se conserva una vez, sus repeticiones se cuentan aparte y las filas sin valores obligatorios son inválidas.
python3 check_csv.py tasks.csvComprueba el resultado
{'valid': 2, 'duplicates': 1, 'invalid': 1}
Si no te sale
FileNotFoundError indica una carpeta o un nombre incorrectos. Expected columns indica una cabecera diferente. Abre el archivo como texto para comprobarlo.
04Introduce un cambio controlado
Copia tasks.csv a tasks-test.csv. En la copia, cambia la última fila por T-3,Check date. Ejecuta el script con el nombre de la copia. Mantener una sola diferencia permite entender por qué cambió el resultado.
python3 check_csv.py tasks-test.csvComprueba el resultado
{'valid': 3, 'duplicates': 1, 'invalid': 0}
Si no te sale
Si el resultado no cambia, comprueba que guardaste la copia y que el comando apunta a ella. No importes duplicados hasta decidir qué registro es correcto.
Fuentes, comprobación y límites
El ejercicio valida estructura básica, no el significado de la tarea. Una fila con el mismo ID y texto distinto se cuenta como duplicado y requiere revisión; no se fusiona ni se borra.
Cómo elaboramos el contenido