Cookies de estadística y publicidad
Usamos cookies de estadística y de publicidad, y ambas van a Google. Si rechazas, para ti no cambia nada visible.Ir a la página de privacidad
TSV
Como CSV pero separado por tabuladores, con lo que el problema de la coma dentro de un campo ni siquiera llega a plantearse.
TSV
TSV es un formato de texto plano que se abre en cualquier editor. Se usa para mover datos entre programas.
La extensión es .tsv y el nombre completo, Tab-Separated Values. Ambos importan menos que lo que el archivo puede contener, y de eso trata el resto de esta página.
Se remonta a 1993. La especificación es IANA text/tab-separated-values.
A un formato que lleva tanto tiempo siendo legible se le puede confiar algo que quieras recuperar dentro de diez años.
Está publicada entera, así que cualquiera puede implementarla leyendo el documento en vez de a base de inspeccionar archivos. Por eso aparece en tantos programas, y por eso los archivos escritos hace veinte años siguen abriéndose hoy. Publicada no quiere decir libre de regalías: cuando un formato envuelve un códec, la licencia de las patentes es un asunto aparte que la norma no resuelve.
TSV guarda su contenido exactamente. Volver a guardarlo no cambia nada, así que puedes abrirlo, editarlo y guardarlo tantas veces como quieras sin acumular daño; eso es lo que lo convierte en un formato de trabajo y no de entrega.
TSV no tiene sintaxis de comentarios. Todo lo explicativo tiene que vivir fuera del archivo, y conviene saberlo antes de elegirlo para algo que una persona vaya a editar a mano.
Microsoft Excel, LibreOffice Calc y pandas lo leen, y también la mayoría de programas del mismo tipo.
Cuando un archivo no se abre, el formato rara vez es el problema: lo más habitual es que el programa sea anterior al formato. Convertir a algo más antiguo es la salida fiable, y para eso está el resto de este sitio.
Ningún navegador lo lee.
Ese es el motivo más frecuente para convertirlo: no que el formato sea malo, sino que el sitio donde quieres mostrar el archivo no sabe leerlo.
TSV está pensado para abrirse y cambiarse. Guarda el archivo en este formato mientras el trabajo siga en marcha y exporta desde él cada vez que haga falta una copia terminada.
Las quejas recurrentes: los tipos de columna se adivinan al importar en lugar de declararse.
Nada de esto es motivo para evitar el formato. Son las cosas que conviene conocer antes de que una de ellas te sorprenda, que es una afirmación distinta y más útil.
Una coma sale continuamente dentro de datos reales: en direcciones, en razones sociales, en descripciones de producto, en cualquier texto libre. El CSV lo resuelve con reglas de entrecomillado, y esas reglas son donde el formato se rompe: un campo con una comilla dentro de un campo entrecomillado que a su vez contiene una coma es legal, incómodo, y está implementado de forma distinta por la mitad de las herramientas que dicen leer CSV.
Un tabulador casi nunca aparece dentro de un campo, porque nadie escribe uno en un formulario ni en una base de datos. Así que un TSV puede prescindir del entrecomillado por completo: partes cada línea por el tabulador y ya tienes los campos, sin autómatas y sin casos límite. Ese es todo el argumento, y con datos reales y sucios es un argumento fuerte.
En español la coma es el separador decimal, así que un precio se escribe 1.024,50 y no al revés. Eso convierte la coma en un delimitador especialmente malo para los datos de aquí: cualquier columna con importes, porcentajes o coordenadas ya la lleva dentro, y basta una exportación descuidada para que una fila de veinte campos se convierta en una de treinta.
De ahí viene una costumbre muy extendida en España y en América Latina: exportar con punto y coma y seguir llamándolo CSV. Funciona hasta que el archivo cambia de programa o de país. El tabulador resuelve lo mismo sin ambigüedad y sin depender de la configuración regional de la máquina que abra el archivo. Este conversor lo tiene en cuenta: al partir de un CSV o de un TSV puedes indicar el separador —detección automática, coma, punto y coma, tabulador o barra vertical— en lugar de confiar en que lo adivine.
La bioinformática, donde las anotaciones genómicas, las matrices de expresión y las tablas de variantes son tabuladas por norma. Y el trabajo en línea de comandos, porque las herramientas clásicas de Unix parten por espacios en blanco y un archivo separado por tabuladores es ciudadano de primera ahí, cosa que un CSV con comillas no es.
También los grandes conjuntos de datos públicos y las exportaciones de bases de datos, donde el contenido tiene comas y prosa y quien exporta prefiere no pensar en el entrecomillado. Si te han pasado un `.tsv` o un `.tab`, viene de alguno de esos mundos.
La virtud del tabulador es también su problema: no se ve. Un archivo con un tabulador en un sitio y cuatro espacios en otro parece idéntico en el editor y se interpreta de forma completamente distinta, y un valor que ha pillado un tabulador al final no se distingue de uno que no.
Esto muerde sobre todo cuando el archivo se toca a mano o lo monta un guion que en algún punto usó espacios. Cualquier editor decente sabe mostrar los caracteres invisibles, y activarlo antes de abrir un TSV es una costumbre de dos segundos que evita una hora de desconcierto. Es además la razón de no construir nunca un TSV concatenando cadenas sin mirar qué llevan los campos.
La especificación de IANA no admite matices: los campos no pueden contener tabuladores ni saltos de línea, y punto. No hay mecanismo de escape, y eso es exactamente lo que mantiene el análisis simple.
En la práctica han crecido dos convenciones. Unos los escapan con secuencias de barra invertida, tomadas prestadas de C; otros aplican entrecomillado al estilo CSV por encima, con lo que reintroducen todo lo que el TSV estaba evitando. Ninguna es universal, así que un archivo con tabuladores incrustados obliga a que quien lo lea coincida con quien lo escribió. Si tus datos llevan de verdad tabuladores o saltos de línea dentro de un campo, el CSV con entrecomillado correcto es la opción más honesta.
Excel abre un `.txt` o un `.tsv` por el asistente de importación y trata bien los tabuladores, mientras que hacer doble clic hace algo menos útil según lo que esté asociado a la extensión. Y aplica exactamente la misma adivinación de tipos que arruina los CSV: los ceros a la izquierda desaparecen, los códigos se vuelven fechas y los identificadores largos pierden precisión.
Con datos en español eso tiene víctimas concretas y reconocibles. Un código postal de 01001 se queda en 1001. Un NIF con cero inicial pierde el cero. Una referencia como 12-3 se convierte en una fecha de diciembre. El consejo es idéntico al del CSV: importar en vez de abrir, marcar como Texto las columnas delicadas, y si quien lo recibe es una persona y no un programa, mandarle un XLSX y quitar la adivinación de en medio.
CSV cuando el archivo va a un sitio desconocido. Es lo que esperan por su nombre los formularios de subida, las rutinas de importación y el software de gestión, y una herramienta que solo admita uno de los dos admitirá CSV.
TSV cuando controlas los dos extremos y los datos son sucios —llenos de comas, comillas y texto libre— o cuando el trabajo ocurre en una línea de comandos. El análisis es más simple, los fallos son menos y nadie tiene que ponerse de acuerdo sobre las comillas. Convertir de uno a otro es mecánico en un sentido y exige cuidado en el otro: de CSV a TSV hay que comprobar que ningún campo lleve un tabulador, y de TSV a CSV hay que añadir comillas allí donde un campo lleve una coma. Un conversor que se salte cualquiera de las dos cosas produce un archivo con aspecto correcto y las columnas desplazadas en silencio.
El TSV se lee en flujo, que es su otra ventaja callada. Un archivo de cualquier tamaño se puede recorrer línea a línea sin cargarlo entero, así que una exportación de varios gigabytes es manejable de una forma en la que la hoja de cálculo equivalente no lo es.
Para algo realmente grande que vas a analizar una y otra vez, Parquet es mejor destino: columnar, comprimido, con tipos, y muchísimo más rápido para las consultas que la gente hace de verdad. El TSV es el formato correcto para intercambiar y el equivocado para un conjunto de datos que vas a leer cien veces.
Las conversiones entre TSV, CSV, JSON, NDJSON, XLSX y Parquet ocurren dentro de tu navegador, sin que el archivo salga del equipo, con un tope de 100 MB por archivo y 100 archivos por tanda, y sin ningún cupo diario. SQL aparece solo como destino: se puede escribir una tabla en forma de sentencias de inserción, y no se lee de vuelta desde ahí.
Hay una transformación que conviene conocer antes de elegir el destino. Una tabla es plana y un JSON no tiene por qué serlo, así que al escribir un TSV —igual que al escribir CSV, SQL, XLSX o Parquet— los objetos anidados se aplanan en columnas cuyo nombre es la ruta separada por puntos, y los índices de un array son un tramo más de esa ruta. La conversión funciona y la forma original no vuelve: pasar de JSON a TSV y de TSV a JSON no devuelve el documento de partida, sino una tabla con nombres de columna largos. Si la estructura importa, el destino es JSON o YAML, no una tabla.
| Extensión | .tsv, .tab |
|---|---|
| Tipo de medio | text/tab-separated-values |
| Primera publicación | 1993 |
| Especificación | IANA text/tab-separated-values |