CSV
Concepto de Datos y formatos en Utilidades, conectado con sus herramientas y conceptos vecinos.
Actualizado el 14 de julio de 2026
CSV (Comma-Separated Values, valores separados por comas) es un formato de texto plano para representar datos tabulares: cada línea es una fila y los campos de cada fila se separan por un delimitador —habitualmente la coma o el punto y coma—. Es el formato más universal para exportar e importar datos entre hojas de cálculo, bases de datos y aplicaciones de análisis.
Estructura de un archivo CSV
nombre,email,edad,activo
Ana García,ana@ejemplo.com,32,true
Carlos López,carlos@ejemplo.com,28,false
María Sanz,maria@ejemplo.com,45,true
La primera fila suele ser la cabecera con los nombres de las columnas. A continuación, cada fila representa un registro. Si un campo contiene el delimitador (una coma) o un salto de línea, debe encerrarse entre comillas dobles:
nombre,ciudad
"García, Ana","Madrid, España"
CSV con punto y coma (configuración española)
En España, Excel genera CSVs con punto y coma como separador porque la coma ya se usa para los decimales de los números (1.234,56 en lugar del 1,234.56 anglosajón). Al abrir un CSV creado en otro sistema puedes encontrarte con que todos los campos aparecen en una sola columna: señal de que el separador no coincide.
Cómo solucionarlo en Excel:
- No abras el fichero con doble clic.
- Ve a Datos → Obtener datos externos → Desde texto/CSV.
- En el asistente, selecciona el delimitador correcto (coma o punto y coma) y la codificación UTF-8.
Alternativamente, añade sep=, como primera línea del CSV para indicarle a Excel qué separador usar (solo funciona en Windows):
sep=,
nombre,email,edad
Ana,ana@ejemplo.com,32
Comparación con JSON
| Característica | CSV | JSON |
|---|---|---|
| Tamaño | Muy compacto (no repite claves) | Mayor (repite nombres de campos) |
| Estructura | Solo tablas planas | Anidado, arrays, objetos |
| Tipos de datos | Todo es texto | Números, booleanos, nulos |
| Legibilidad | Alta en tablas simples | Alta en datos complejos |
| Uso típico | Exportar/importar, analítica, Excel | APIs REST, configuración |
Cuando los datos son una tabla homogénea (mismas columnas para todos los registros), CSV ocupa mucho menos espacio. Si hay campos opcionales, datos anidados o necesitas preservar tipos, JSON es la mejor opción.
CSV en Python y JavaScript
Python (biblioteca estándar):
import csv
# Leer CSV
with open("datos.csv", encoding="utf-8") as f:
lector = csv.DictReader(f)
for fila in lector:
print(fila["nombre"], fila["edad"])
# Escribir CSV
with open("salida.csv", "w", newline="", encoding="utf-8") as f:
escritor = csv.DictWriter(f, fieldnames=["nombre", "edad"])
escritor.writeheader()
escritor.writerow({"nombre": "Ana", "edad": 32})
JavaScript (Node.js con papaparse):
import Papa from "papaparse";
const resultado = Papa.parse(textoCsv, { header: true });
console.log(resultado.data); // Array de objetos
Errores comunes
- Codificación incorrecta: el problema más frecuente. Guarda siempre en UTF-8 (con o sin BOM; el BOM
al inicio ayuda a que Excel lo reconozca automáticamente en Windows). - Saltos de línea dentro de un campo: deben ir entre comillas dobles. Sin ellas, el parser interpreta el salto como el fin de la fila.
- Comas en los datos: igual que los saltos de línea, cualquier campo que contenga el carácter separador debe ir entre comillas.
- Mezcla de delimitadores: no mezcles comas y punto y coma en el mismo archivo. Decide uno y mantenlo en todo el CSV.
- Filas con distinto número de columnas: algunos parsers lanzan error; otros rellenan con vacío. Valida la coherencia antes de importar.
Conceptos relacionados
Preguntas frecuentes
¿Qué separador usa realmente el formato CSV?
¿Cómo abro un CSV con acentos y ñ correctamente en Excel?
¿CSV y Excel son lo mismo?
Ver todas las herramientas de Utilidades.