.fw files.wiki
CSV

Archivos CSV

Valores separados por comas

CSV es un formato tabular de texto sin formato que almacena filas como líneas y campos separados, por lo general, por comas.

Comma-Separated Values (CSV, RFC 4180-style)

Más común
Desarrollador
Desarrollado de forma informal; documentado por IETF RFC 4180 y actualizado por RFC 7111
Categoría
Datos y texto
Tipo MIME
text/csv
Formato
Texto
Primera versión
1972
Última versión
RFC 7111 fragment identifiers, 2014
Estándar abierto
Sí

Microsoft Excel CSV dialects

Desarrollador
Microsoft
Tipo MIME
text/csv
Formato
Texto
Primera versión
1985
Última versión
Microsoft 365 Excel CSV import/export behavior
Estándar abierto
No

Locale-delimited CSV / character-separated values

Desarrollador
Diversos proveedores de hojas de cálculo y bases de datos
Tipo MIME
text/csv
Formato
Texto
Primera versión
1970
Última versión
Implementation-specific
Estándar abierto
No

W3C CSV on the Web tabular data

Desarrollador
World Wide Web Consortium (W3C)
Tipo MIME
text/csv
Formato
Texto
Primera versión
2015
Última versión
W3C Recommendation 17 December 2015
Estándar abierto
Sí

Abrir un archivo .CSV en línea

Leyendo el archivo…

¿Qué es un archivo .CSV?

CSV (Comma-Separated Values) es un ejemplo de formato de tabla de texto plano en el que todos los registros ocupan líneas separadas, mientras que los campos de cada uno se separan con una coma. Este formato apareció durante la evolución de las técnicas de procesamiento de datos informáticos y ninguna empresa proveedora lo admite como una tecnología propietaria. Al principio, se formalizó en el tipo de contenido text/csv de la RFC 4180 del IETF, con el objetivo de definir un mecanismo estándar para analizar archivos de texto CSV, y pasó a ser compatible con la RFC 7111, a la que se añadieron identificadores de fragmento. El contenido de los archivos CSV no incluye nada más que valores almacenados en celdas; las fórmulas no están disponibles, y tampoco incluyen gráficos ni varias hojas, junto con colores de las celdas, filtros, notas, tablas dinámicas ni scripts (macros). Estos archivos suelen salir al exportarlos desde hojas de cálculo, bases de datos, sistemas de contabilidad, soluciones de software CRM, libretas de direcciones, soluciones analíticas, tiendas de eCommerce y equipos científicos.

Excel admite su propia variante del formato CSV, con capacidades de localización respecto a los separadores y el reconocimiento de UTF-8 basándose en el Byte Order Mark en versiones antiguas de Excel. A veces, en algunas localidades, el archivo CSV en realidad estará separado por punto y coma, ya que allí la coma funciona como separador de números decimales; eso significa que seguirá siendo una tabla de texto, pero no cumplirá con la RFC 4180. Otra familia relacionada es el formato CSV on the Web, definido por el W3C; se trata de una combinación de la tabla de texto CSV y un archivo adicional que describe esta información con metadatos JSON (describiendo esquemas, tipos de datos, etc.). La forma más rápida de diferenciar los formatos es inspeccionar el archivo con un editor de texto.

Cómo abrir un archivo .CSV

Abrir un archivo .CSV en Windows

  1. 1 Ve a la carpeta donde está tu archivo en Explorador de archivos. Normalmente, los archivos descargados terminan en Descargas.
  2. 2 Haz doble clic en tu archivo .CSV si tienes una aplicación para archivos .csv en tu equipo. Si no se abre, pasa al paso tres.
  3. 3 Haz clic derecho en tu archivo .CSV -> selecciona Abrir con -> Elegir otra aplicación.
  4. 4 Elige Microsoft Excel en la lista (Windows 11: elige Siempre). En Windows 10 -> marca "Usar siempre esta aplicación para abrir archivos .csv" y haz clic en Aceptar.

¿Sigue sin abrirse? Consulta los problemas comunes y sus soluciones, o ábrelo en tu navegador.

Programas para Windows

Abrir un archivo .CSV en macOS

  1. 1 En la app Finder, localiza tu archivo .CSV.
  2. 2 Solo haz doble clic en tu archivo .CSV para abrir automáticamente el programa asociado con él.
  3. 3 ¿Necesitas otra app en tu Mac? Haz Control-clic en el archivo (o clic derecho con el mouse). En el menú emergente, selecciona Abrir con -> Numbers.
  4. 4 Si no aparece en la lista, elige Otra… y busca la aplicación manualmente.

¿Sigue sin abrirse? Consulta los problemas comunes y sus soluciones, o ábrelo en tu navegador.

Programas para macOS

Abrir un archivo .CSV en Linux

  1. 1 Abre tu gestor de archivos. Según el escritorio, puede llamarse Archivos (GNOME), Dolphin (KDE Plasma), Nemo (Cinnamon) o Thunar (Xfce).
  2. 2 Haz doble clic en el archivo.
  3. 3 O elige otro programa haciendo clic derecho en el archivo -> Abrir con -> LibreOffice Calc.
  4. 4 Instala LibreOffice Calc (si no está instalado en tu equipo) desde el centro de software, el repositorio o Flathub.

¿Sigue sin abrirse? Consulta los problemas comunes y sus soluciones, o ábrelo en tu navegador.

Programas para Linux

Abrir un archivo .CSV en Android

  1. 1 Abre Archivos u otra app de gestión de archivos.
  2. 2 En Descargas, busca el archivo .CSV y ábrelo tocándolo.
  3. 3 Se mostrará una lista de apps capaces de abrir el archivo. Toca Google Sheets y pulsa Siempre para asociar de forma permanente este tipo de archivo con esta app.
  4. 4 ¿No hay ninguna app capaz de abrir este archivo? Descarga Google Sheets desde Google Play Store.

¿Sigue sin abrirse? Consulta los problemas comunes y sus soluciones, o ábrelo en tu navegador.

Programas para Android

Abrir un archivo .CSV en iPhone / iPad

  1. 1 Usa la app Archivos y ve a En mi iPhone, iCloud Drive o Descargas.
  2. 2 Toca el archivo .CSV que quieras abrir.
  3. 3 Si el archivo puede abrirse con una app integrada de iOS (formato compatible), se abrirá automáticamente.
  4. 4 Mantén pulsado el archivo para abrir el menú contextual -> elige Compartir -> selecciona Google Sheets en la lista de apps.
  5. 5 Si no aparece esa opción, primero descarga la app desde el App Store y luego toca el documento otra vez.

¿Sigue sin abrirse? Consulta los problemas comunes y sus soluciones, o ábrelo en tu navegador.

Programas para iPhone / iPad

Abrir un archivo .CSV en línea

  1. 1 Ve al visor en línea en la parte superior de esta página.
  2. 2 Arrastra el archivo hasta allí o selecciónalo, y su contenido aparecerá en la pestaña de tu navegador. El archivo no se sube.

¿Sigue sin abrirse? Consulta los problemas comunes y sus soluciones, o ábrelo en tu navegador.

Programas para En línea

Más detalles sobre cómo abrir archivos .CSV

La aplicación predeterminada más común para archivos .csv en Windows es Microsoft Excel y, por lo general, los archivos se pueden abrir con solo hacer doble clic. Algunos sustitutos fiables donde las opciones de importación se pueden configurar y tratar el archivo de texto de una forma más personalizada son: LibreOffice Calc, Apache OpenOffice Calc, Notepad++, Visual Studio Code, OpenRefine, Python pandas y csvkit. MS Excel es bueno para explorar rápidamente el contenido del archivo, mientras que Notepad++ y VS Code son mejores para manejar el texto plano real en caso de que necesites tratar el formato de archivo CSV, y también es mejor realizar la limpieza y normalización de datos con OpenRefine.

En caso de que tengas archivos CSV en un sistema operativo Mac, se pueden manejar usando MS Excel, la aplicación Apple Numbers, LibreOffice Calc, una aplicación Table Tool, Visual Studio Code, RStudio Desktop y distintas herramientas de línea de comandos. La vista rápida con Numbers es más sencilla, pero debes tener en cuenta que el programa adivinará automáticamente el formato como fecha o número para algunos campos, como 00123 o 03/04/2024, que se modificarán después de la importación.

En el caso de sistemas Linux OS, el manejo de archivos CSV es posible mediante aplicaciones como: LibreOffice Calc, Gnumeric, Apache OpenOffice Calc, VS Code, RStudio Desktop, pandas, sqlite3 y csvkit, sin usar software propietario. En Android OS y también en iOS, los archivos CSV también se pueden importar en Google Sheets, MS Excel y la aplicación llamada Numbers, pero es mejor usarlas para una exploración rápida, no para una manipulación compleja. La mejor manera de importar archivos CSV en estas aplicaciones no es haciendo doble clic, porque los archivos podrían ser demasiado grandes.

¿Hacer doble clic y obtener un programa incorrecto para importar CSV? Entonces hay que editar las asociaciones de archivos. Intenta abrir el archivo con File > Open o Import y verás la posibilidad de configurar el delimitador, la opción de codificación y el tipo de columna. Si todos los datos terminan en una sola columna, selecciona el delimitador. En caso de que obtengas símbolos con un acento desconfigurado, vuelve a abrir este archivo usando codificación UTF-8, o UTF-8 with BOM, o también Windows-1252, ISO-8859-1

Detalles técnicos

El formato de archivo CSV es texto plano, a diferencia de un archivo binario. Un archivo CSV no tiene números mágicos, no lleva una firma ni puede contener un contenedor de compresión de datos integrado. La definición de CSV del IETF en el documento de estándar de Internet RFC 4180 define un archivo CSV como una colección organizada de registros, cada registro separado de los demás por CRLF. El archivo puede incluir opcionalmente una fila que funciona como encabezado. Los registros incluyen comas que dividen los campos, y cualquier campo con una coma, un signo de comillas o un salto de línea debe ir entre comillas dobles. Una comilla doble literal dentro de un campo entre comillas se representa repitiendo el carácter de comilla doble, así que la cadena He said "yes" se expresa como "He said ""yes""".

Existe un tipo MIME de archivo registrado como text/csv. El tipo text/csv se amplió mediante RFC 7111 con identificadores de fragmento URI para filas, columnas y celdas en un recurso text/csv. La codificación del archivo CSV no es descriptiva, aunque UTF-8 es común. En el programa de hojas de cálculo de Microsoft, la detección de la codificación UTF-8 es mejor cuando los primeros bytes del archivo son EF BB BF. Otras implementaciones heredadas podrían basarse en Windows-1252.

El formato de los finales de línea varía, ya que RFC 4180 especifica CRLF, pero en la mayoría de los casos las líneas podrían terminar en LF, especialmente cuando se usa con programas de estilo unix, o podrían usar CR cuando derivan de implementaciones heredadas. La inserción de un salto de línea dentro de un campo solo es posible cuando el campo está entre comillas. El formato no tiene un lugar para almacenar metadatos como el tipo de columna, la configuración regional, los marcadores para campos nulos, las unidades y los esquemas. Tampoco tiene un lugar para almacenar números de versión, claves primarias y ordenación. El tamaño del archivo puede variar entre unos pocos bytes y muchos gigabytes.

Cómo convertir archivos .CSV

Cuando te resulta útil seguir procesando en Excel después de importar un archivo CSV, entonces convertir el archivo del formato CSV al formato nativo de Excel será útil (dar formato, usar fórmulas, más hojas, aplicar filtros, etc.). El procedimiento para convertir CSV a XLSX se puede hacer fácilmente usando la siguiente instrucción: libreoffice --headless --convert-to xlsx --outdir out input.csv. Opciones como csvkit, pandas y R readr pueden encargarse de tareas frecuentes de exportación.

En caso de que sea necesario convertir un CSV a JSON (por ejemplo, para usarlo en solicitudes web API), ten en cuenta que debe haber reglas sobre cómo se puede construir JSON anidado a partir de un CSV, que representa datos planos (sin anidamiento de arrays/objetos, etc.). En ese caso, la herramienta csvkit puede ayudar con este tipo de tarea: csvjson input.csv > output.json (los nombres de la fila de encabezado representan los campos de los objetos).

Para trabajar con grandes volúmenes de datos y necesitar indexación, validaciones, consultas, joins entre tablas y otros procedimientos avanzados, lo mejor es usar DBMSes en lugar de archivos CSV: SQLite y PostgreSQL admiten la lectura directa de archivos CSV con palabras clave y construcciones especiales: sqlite3 admite la carga directa con las palabras clave .mode csv y .import --skip 1 input.csv mytable. COPY es una forma para PostgreSQL.

En los casos en que sea necesario procesar un archivo con software de análisis, debería convertirse ya sea en un archivo Parquet (columnas tipadas y comprimidas con un esquema de codificación) o en un archivo Feather, que tiene definiciones de tipo más legibles para las columnas.

Si un archivo CSV está lleno de comas, es útil convertirlo en un archivo TSV donde los caracteres de nueva línea incrustados y las tabulaciones en cada campo requieren un procedimiento especial de limpieza: csvformat -T input.csv > output.tsv.

Antes de todas las conversiones, hay que definir qué delimitador usar, cuál es la codificación, el formato de fecha y qué tipo de separador decimal se va a usar. Las conversiones normalmente pierden precisión de los valores, ceros a la izquierda, diferencias entre cadenas vacías y valores NULL, zonas horarias, codificaciones y caracteres de nueva línea dentro de los valores, etc.

Convertir aHerramientaComando / nota
XLSX LibreOffice Calc libreoffice --headless --convert-to xlsx --outdir out input.csv Crea un libro de Excel; el delimitador, la codificación, las fechas y la inferencia de tipo numérico pueden requerir ajustes manuales de importación para obtener resultados fiables.
JSON csvkit csvjson csvjson input.csv > output.json Convierte filas en objetos JSON usando la fila de encabezado como claves; primero debes corregir los nombres de columna duplicados o vacíos.
SQLite database sqlite3 sqlite3 output.db ".mode csv" ".import --skip 1 input.csv mytable" Importa a una tabla; crea primero la tabla para definir de forma explícita los nombres de columna y los tipos de datos.
TSV csvkit csvformat csvformat -T input.csv > output.tsv Cambia el delimitador a tabulaciones; las tabulaciones incrustadas o un entrecomillado inconsistente aún pueden requerir limpieza.
HTML table Python pandas python -c "import pandas as pd; pd.read_csv('input.csv').to_html('output.html', index=False)" Útil para publicar una tabla pequeña; el formato y las fórmulas no se conservan porque CSV no tiene ninguno de los dos.
Parquet Python pandas with pyarrow python -c "import pandas as pd; pd.read_csv('input.csv').to_parquet('output.parquet', index=False)" Bueno para analítica; Parquet añade columnas tipadas y comprimidas, pero debes comprobar los tipos inferidos.

Problemas comunes y soluciones

Otra situación es cuando un archivo importado de Excel parece contener un delimitador incorrecto, es decir, todas las columnas del archivo aparecerían en la primera (Columna A). Aquí nos encontramos con delimitadores utilizados distintos al delimitador del sistema. Las posibles razones aquí serían el uso de puntos y comas, tabulaciones y otros delimitadores locales. Necesitas ir a “Datos”->“Desde Texto/CSV” para evitar estos problemas y especificar los separadores necesarios al importar. Ten en cuenta que un archivo que termina en ".csv" no significa que el CSV contenga comas: abre la primera fila en editores de texto plano.

En segundo lugar ocurren errores relacionados con la codificación de texto. "Mojibake" es como se ven algunos problemas de conjuntos de caracteres: ocurren cuando los CSV se guardan en un formato (por ejemplo "Windows-1252") pero se cargan en otro ("UTF-8") y viceversa. Es muy sencillo: simplemente vuelve a abrir tu CSV usando la codificación requerida (Windows-1252 o UTF-8) o especifica la opción de guardado necesaria al guardar el archivo ("UTF-8"). Otro problema sería un "UTF-8 BOM" que puede aparecer antes del inicio de un encabezado; de hecho podría representarse como . Simplemente elimina este BOM.

En tercer lugar las suposiciones incorrectas acerca de los datos en las hojas de cálculo llevan al cambio de datos invisible. Esto ocurre porque los identificadores largos pueden aparecer como mostrados en el formato de número científico y los números con prefijo cero pueden estar sin él. Por eso por favor usa las funciones de importación para leer no en el modo "general (número)" sino en el modo de texto para las columnas.

Las fechas también pueden ser incorrectas dependiendo de su origen. Por ejemplo 03/04/2024 podría representar ya sea el 3 de Abril o el 4 de Marzo del año. Por eso tenemos que usar las configuraciones regionales apropiadas y las correspondientes configuraciones de formato de fecha durante la importación.

Finalmente los errores en el uso de los delimitadores de texto arruinan a nuestros analizadores. Es decir las comillas no coincidentes y los CR podrían generar errores como «newline inside string» o «EOF inside string». Además desplazan las columnas.

Para corregir los errores al usar los delimitadores de texto necesitas un validador como csvlint o csvkit. Muy último pero no menos importante es que los archivos muy grandes pueden ralentizar las operaciones e incluso superar el límite máximo permitido para algunos programas. El límite puede depender del número de filas. Divide el CSV, cárgalos en SQLite y usa herramientas de streaming si es necesario.

Consideraciones de seguridad

Los archivos CSV no incorporan objetos de ningún tipo; ni tampoco contienen macros, ejecutables, archivos binarios ni scripts activos. La principal preocupación es la inyección de fórmulas ya que al importar celdas que empiezan con un signo igual, signos más, signos menos, el signo @, Tabulaciones o retornos de carro serán considerados como fórmulas y funciones de hoja de cálculo como HYPERLINK, WEBSERVICE o DDE podrían activarse fácilmente de esta manera. Para prevenir amenazas de inyección cuando se trata de una exportación proporcionada por el usuario sería bueno agregar un apóstrofo adicional antes de estos signos peligrosos o simplemente usar la utilidad de importación de texto al abrir un archivo CSV.

El contenido principal de un archivo CSV podría estar compuesto por cualquier cosa que va desde los nombres de las personas, direcciones, su seguridad social u otros identificadores personales, información de salario, datos médicos y otros registros similares. A pesar de que el formato de archivo CSV no tiene su propia capacidad de cifrado de datos todavía podría haber datos ocultos incluidos pero su volumen será considerablemente menor en comparación con los datos ocultos en formatos XLSX. Los archivos CSV siempre deben ser analizados cuidadosamente para verificar el recuento correcto de delimitadores por cada registro para asegurarse de que no haya ningún problema con el uso de los datos dentro de las bases de datos o scripts.

Historia y versiones

Las tablas de texto delimitado existían antes del surgimiento de la era de las PC en los mainframes, con registros separados por comas que existían sin una designación CSV. Uno de los casos históricos es un documento de IBM que describe el compilador Fortran de 1972, que habla de lectura dirigida por listas que usa valores separados por comas. Más tarde, CSV se difundió a través de diversos programas de aplicación, cuando en 1979 se publicó VisiCalc, que ayudó a popularizar el intercambio de texto delimitado. Este formato fue seguido y utilizado después por otros paquetes de hoja de cálculo y base de datos, como Microsoft Excel, que apareció por primera vez para Macintosh en 1985 y para Windows en 1987, y usa el formato .csv para exportación e importación.

El proceso de estandarización comenzó mucho más tarde: el documento RFC 4180 de IETF, de Yakov Shafranovich, apareció en 2005, registrando el tipo MIME text/csv y especificando el formato del dialecto CSV más popular. Más tarde, RFC 7111 añadió designaciones de fragmentos URI para especificaciones de fila, columna y celda. El estándar más reciente sobre el uso del formato CSV apareció en 2015, cuando W3C publicó las recomendaciones CSV on the Web relativas a metadatos y conversiones. Aun así, hay que admitir que el formato CSV sigue siendo muy relevante por muchas razones: buena legibilidad, fácil generación, capacidad de transmisión por flujo e independencia de cualquier lenguaje natural o sistema informático.

El CSV no es el único formato posible. El formato separado por tabulaciones es posible para los casos donde haya comas en las cadenas de texto. Sin embargo, puede haber problemas con las tabulaciones en las cadenas de texto durante la importación. Y finalmente los archivos separados por barras verticales (.psv o .txt por ejemplo) serán populares ya que no entran en conflicto con los separadores decimales y al mismo tiempo ofrecen una menor compatibilidad en las herramientas de hojas de cálculo, a diferencia de los archivos CSV.

Los formatos de hojas de cálculo tendrán que consistir en este tipo de archivos como los documentos de Excel (.xlsx y .xls formatos), Hojas de cálculo de OpenDocument (.ods formato) ya que todas las funciones adicionales como fórmulas, opciones de formato, varias hojas de cálculo o gráficos en una sola hoja de cálculo deberían mantenerse.

Para propósitos simples el formato CSV será la mayoría de las veces lo más conveniente para editar tablas planas.

Si nos encontramos con información anidada o jerárquica o en general hablando al trabajar con APIs y cosas similares el formato JSON (.json formato) nos sería el más adecuado. Si fuera algo de un API con información jerárquica podría ser XML (.xml formato).

Para análisis complejos con tipos de datos y la compresión de datos tenemos dos opciones adecuadas para reemplazar al CSV - Parquet (.parquet) o ORC (.orc). Para el índice podemos utilizar archivos en formato SQLite (.sqlite o .db formatos por ejemplo).

Comentarios (0)

Respondiendo a

Aún no hay comentarios. Sé el primero en compartir tu experiencia con este tipo de archivo.