Cuando realizamos un scraping o tenemos que introducir datos de un fichero a un formulario web es bastante común tener que cargar los datos desde un fichero de texto.
En este artículo voy a comentar como trabajar con un archivo csv de forma sencilla.
He generado un archivo separado por comas con un par de columnas: Nombre,Edad
Utilizaré una muestra de 100.000 líneas o registros y su representación será similar a esta:
Como ejercicio procesaré este fichero y para realizar una iteración sobre los datos voy a sumar todas las edades y almacenaré el resultado en una variable.
Veremos algunos programas de automatización o lenguajes de programación de alto nivel, si tienes curiosidad posiblemente descubras alguna herramienta interesante.
Además, con muy pocos comandos conseguiremos procesar nuestro fichero CSV sin complicaciones.
Procesar un CSV con WinAutomation
Empezamos con WinAutomation, uno de mis preferidos.
El algoritmo sería tal que así:
La primera acción lee el fichero y lo almacena en una TABLA.
Iteramos la lista acumulando los valores de la columna EDAD almacenándolos en la variable %SumVar%.
Es impresionante el trabajo que puede realizar con tan pocos comandos.
En la siguiente imagen puedes ver la acción Read from CSV File:
Desde el asistente podemos seleccionar el encoding, elegir el carácter de separación de columnas o hacer un Trim a los datos de forma automática.
Como referencia, tarda unos 36 segundos en procesar y sumar las 100.000 líneas.
Procesar un CSV con Macro Scheduler
Ahora voy a hacer lo mismo, pero esta vez con Macro Scheduler.
El código sería el siguiente:
Con este programa de automatización la carga del fichero la hacemos a través del comando CSVFileToArray y podemos iterar de una forma muy similar a la anterior.
Macro Scheduler realiza la tarea en unos 13 segundos y el código tampoco tiene ninguna complicación.
Hay formas más optimas de realizar esto, por ejemplo a través de Microsoft Text Driver, un buen atajo para sumar estos datos en 0,2 segundos.
Como curiosidad este sería el código:
Procesar un CSV con Liberty Basic
Veamos como realizar la misma tarea con Liberty Basic:
Aunque es un lenguaje interpretado resuelve esta tarea en unos 3,5 segundos y el código es realmente sencillo.
Procesar un CSV con PowerBasic
Por último, el código en PowerBasic, un compilador bastante eficiente que resuelve la tarea en unas 12 décimas de segundo cargando toda la información en memoria y sin uso de librerías externas.
El archivo ejecutable ocupa tan solo 22 kb.
Espero que te haya parecido muy sencillo el manipular un archivo CSV con cualquiera de estas herramientas.