Todas las guías

Guías de TSV y CSV

TSV o CSV — ¿cuál te conviene?

Hacen lo mismo. Fallan de maneras distintas, y esa diferencia es la que decide cuál quieres.

Los dos formatos son tablas en texto plano. Uno separa las columnas con una coma y el otro con un tabulador. Todo lo que viene después sale de esa única diferencia.

La respuesta corta

Usa TSV cuando los datos sean texto escrito por personas: nombres, descripciones, traducciones, mensajes de registro. La prosa está llena de comas y prácticamente vacía de tabuladores, así que un TSV normalmente no necesita escapar nada.

Usa CSV cuando algo más adelante lo exija, que es a menudo. Es el formato que toda herramienta acepta sin preguntar, y si vas a entregarle un archivo a un destinatario desconocido, es la opción prudente.

Todo lo de abajo es el porqué.

El entrecomillado: la diferencia de verdad

El CSV tiene una especificación para esto, la RFC 4180, y existe porque las comas aparecen en los datos constantemente:

key,name
item_mug,"Taza, de cerámica"
item_tee,"Dijo ""me queda bien"""

Todo lector y todo escritor tiene que implementar bien el envolver, el duplicar y el desenvolver. Casi todos lo hacen. Los que no, producen archivos donde un solo nombre de producto se ha convertido calladamente en dos columnas — y como la fila sigue analizándose, nada da error.

El TSV equivalente no necesita entrecomillado ninguno:

key	name
item_mug	Taza, de cerámica
item_tee	Dijo "me queda bien"

Menos reglas son menos cosas que se pueden hacer mal. Ese es el argumento entero a favor de los tabuladores.

Dónde flojea el TSV

Los tabuladores son invisibles. No puedes ver si un hueco es un tabulador, dos tabuladores o una tanda de espacios que alguien tecleó a mano. A un CSV al que le falta una coma se le nota de un vistazo; a un TSV al que le falta un tabulador, no.

Hay herramientas que se los comen. Pega un bloque separado por tabuladores en un chat, en un formulario web o en un campo de texto enriquecido y los tabuladores pueden llegar como espacios, o no llegar. Las comas sobreviven siempre.

La costumbre no es un estándar. El CSV tiene una RFC. Los archivos separados por tabuladores tienen una costumbre muy extendida. Casi todos los analizadores aceptan el entrecomillado estilo CSV dentro de un TSV, pero nada lo garantiza.

Dónde flojea el CSV

El delimitador no siempre es una coma. En los idiomas donde los decimales se escriben 1,5 —casi toda Europa— Excel exporta el CSV con punto y coma y lo sigue llamando CSV. Un archivo que se abre perfecto en el equipo de un compañero llega como una sola columna al de otro. Los tabuladores no tienen esa variante regional.

El escapado es donde viven los fallos. Casi todos los avisos de «el archivo está corrupto» en una tubería de CSV vienen de una comilla que no se duplicó, o de un campo entrecomillado con un salto de línea dentro que un split('\n') ingenuo partió en dos.

Invita a abrirlo en una hoja de cálculo. Un archivo .csv lleva icono de hoja de cálculo en casi todos los sistemas, y hacerle doble clic es la manera más rápida de convertir tus identificadores en fechas.

Lo que comparten, que importa más

Ninguno de los dos guarda su propia codificación, ni su fin de línea, ni si tiene fila de cabecera. Las tres cosas las adivina quien abra el archivo. Así que los dos sufren exactamente igual:

  • La adivinanza de importación de Excel — 03-04 convertido en fecha, ceros de delante que desaparecen, números largos en notación científica.
  • Los desajustes de codificación — un archivo UTF-8 leído como windows-1252, o al revés.
  • Los fines de línea mezclados — unas filas terminadas en LF y otras en CRLF.

Elegir entre tabuladores y comas no arregla nada de esto. No abrir el archivo en una hoja de cálculo, sí.

Elegir, en la práctica

Situación Formato
Texto libre, descripciones, traducciones TSV
Entregar el archivo a alguien o a algo desconocido CSV
Datos que van a pasar por cut, awk, sort TSV
Datos con comas pero sin tabuladores TSV
Un destinatario que solo acepta .csv CSV, bien entrecomillado
Compañeros que lo van a abrir en Excel en español CSV con punto y coma, o manda directamente XLSX

Convertir de uno a otro

La conversión es un carácter, pero el escapado no. Pasar de tabuladores a comas significa que cada celda con una coma o unas comillas pasa a necesitar envoltorio; en el otro sentido significa desenvolver bien, incluidos los campos entrecomillados que ocupan dos líneas.

Los dos sentidos funcionan en el navegador — TSV a CSV y CSV a TSV. Las descargas usan UTF-8, tabuladores para TSV y comas para CSV. Revisa el fin de línea de registros, el BOM y el salto final antes de exportar. Las comillas se reconstruyen; si la salida literal no conserva las celdas, el diálogo ofrece conversión explícita de entrecomillado cuando es posible. Si el destino es una hoja de cálculo, exporta a Excel directamente para escribir las cadenas actuales en un libro nuevo.