Como dividir archivo CSV grande en varias partes
Los archivos en formato CSV están cada vez más presentes en la red y su manejo se puede realizar de forma sencilla con aplicaciones ofimáticas como Excel. El problema que nos encontramos en muchas ocasiones, es que el tamaño de los archivos CSV es demasiado grande y resulta imposible su manejo con herramientas convencionales. En estas situaciones, nuestra única opción es dividir el archivo CSV grande en partes más pequeñas.
De este modo, tendremos varios archivos de menor tamaño que podemos manejar de forma individual con nuestro programa habitual. El problema del manejo de archivos CSV grandes se ve acentuado cuando usamos un equipo con una cantidad de RAM muy limitada. Por todos estos motivos, las soluciones que abordaremos a continuación estarán enfocadas a conseguir nuestro objetivo sin necesidad de equipos muy potentes y serán:
- Uso del programa de consola LargeFileSplitter.
- Programa con interfaz gráfica CSV Splitter.
- Editor de texto EmEditor.
Dividir archivo CSV grande desde la consola en Windows con LargeFileSplitter.
Esta es mi opción preferida y aunque requiere del uso de la consola, es un programa sencillo de usar. El programa en cuestión se llama LargeFileSplitter y está disponible de forma gratuita en GitHub. También está disponible el código fuente en C#, por lo que incluso podremos trastear con él si tenemos los conocimientos necesarios. Necesitaremos el .Net Framework 4.5 instalado en el sistema.
Una vez descargado el ejecutable (desde el apartado Releases de GitHub) podemos ejecutar LargeFileSplitter de dos formas:
- Desde la consola de comandos de Windows.
- De forma interactiva haciendo doble click sobre el ejecutable.
El programa necesita la ruta donde se encuentra el archivo CSV que queremos dividir y el número de partes en el que queremos dividir el archivo. Un ejemplo de comando sería:
LargeFileSplitter.exe "C:\Portables\vozidea tutoriales\archivogrande.csv" 5
Es importante fijarse en que la ruta del archivo contiene un espacio en blanco, por eso hay que ponerla entre comillas.
Ejecutar este programa de forma interactiva puede ser más sencillo y rápido, cada uno que elija el modo que más le guste.
Una cosa a tener en cuenta, es que el nombre de salida de los archivos CSV creados estará precedido por un número, por ejemplo si dividimos el archivo vozidea.csv
en tres partes, los archivos resultantes se llamarán 1-vozidea.csv
, 2-vozidea.csv
y 1-vozidea.csv
.
Usar el programa CSV Splitter con interfaz gráfica para Windows.
En segundo lugar damos la opción de usar el software gratuito CSV Splitter, que nos ofrece una interfaz gráfica muy intuitiva. Sólo tendremos que seleccionar el archivo que queremos dividir, ajustar el número de líneas que queremos que tenga cada división del archivo y pulsar el botón «Execute».
En este caso, a los nombres de archivo correspondientes a las diferentes divisiones, se les añade una terminación numérica. Por ejemplo, si el archivo de entrada es vozidea.csv
, el nombre de los archivos de salida será vozidea.csv.000
, vozidea.csv.001
, vozidea.csv.002
, etc.
CSV Splitter también puede ejecutarse en modo consola, para ello sólo habría que ejecutarlo con un comando como el siguiente:
CSVSplitter filename="C:\Portables\vozidea.csv" outputfolder=" C:\Portables" rowcount=10000 firstrowheader=1 repeatheader=1
Tras realizar varias pruebas, puedo decir que CSV Splitter es menos eficiente que nuestra anterior solución y con archivos muy grandes se ha llegado a bloquear la aplicación. Por este motivo sigo recomendando LargeFileSplitter como primera opción.
Descarga del programa: https://www.erdconcepts.com/dbtoolbox/csvsplitter/csvsplitter.zip
Manejar archivos CSV grandes sin llegar a dividirlos con EmEditor.
Aunque en este tutorial no estamos centrando en cómo dividir archivos CSV grandes, no quería pasar por alto la opción de manejar estos archivos directamente, sin necesidad de dividirlos.
Para este cometido, el programa que suelo usar es EmEditor, el cual ya os advierto que es de pago. He de reconocer que EmEditor es impresionante, abre archivos de casi cualquier tamaño sin disponer de grandes cantidades de RAM.
Si tratas con archivos CSV o de texto, de tamaños superiores a los 3GB de forma habitual, puede ser una buena opción pasar por caja.