TSV (Tab-Separated Values, valores separados por tabulaciones) es uno de los formatos de datos más simples y robustos que existen. Aunque el CSV se lleva toda la atención, TSV funciona mejor cuando los datos contienen comas — como direcciones, valores monetarios o campos de texto libre. Saber cuándo usar TSV en lugar de CSV (o en lugar de Excel) puede ahorrarte horas de depuración.
¿Qué es TSV?
TSV (.tsv) es un formato de texto plano en el que cada fila ocupa una línea separada y las columnas están separadas por un carácter de tabulación (\t, ASCII 0x09). Como el CSV, TSV se usa para almacenar datos tabulares — hojas de cálculo, exportaciones de bases de datos, pipelines de datos — sin codificación binaria propietaria.
Nombre Email Ciudad Precio
Alicia López alicia@ejemplo.com Madrid 1.250,00 €
Roberto García roberto@ejemplo.com Barcelona 3.800,00 €
En el ejemplo anterior, cada columna está separada por una tabulación. Las comas, los signos de euro y los espacios dentro de los valores no causan ningún problema de análisis, a diferencia del CSV, que requiere entrecomillado o escape cuando las comas aparecen en los datos.
TSV vs CSV: ¿Cuándo usar cada uno?
| Escenario | Recomendado | Por qué |
|---|---|---|
| Datos con muchas comas (direcciones, precios) | TSV | No se necesita escape |
| Datos con tabulaciones | CSV | Las tabulaciones deben escaparse en TSV |
| Máxima compatibilidad de herramientas | CSV | Excel detecta CSV automáticamente, con TSV menos |
| Importaciones a bases de datos (MySQL, PostgreSQL) | TSV | LOAD DATA INFILE usa tabulaciones por defecto |
| Datos de bioinformática | TSV | Estándar científico (GTF, BED, VCF, GFF3 son TSV) |
| Edición humana en editor de texto | TSV | Las columnas se alinean visualmente en editores monoespaciados |
TSV en ciencia y bioinformática
TSV es la base de los formatos de datos genómicos:
- BED (Browser Extensible Data) — formato de coordenadas genómicas, separado por tabulaciones
- VCF (Variant Call Format) — datos de variantes de ADN, separado por tabulaciones
- GFF3/GTF — formatos de anotación génica, separados por tabulaciones
- Salida de DESeq2 — resultados de expresión diferencial exportados como TSV
Si trabajas con genómica, bioinformática o cualquier pipeline científico, casi con toda seguridad ya usas TSV, aunque quizás no lo llames así.
Trabajar con archivos TSV
Abrir TSV en Excel: Excel no siempre detecta automáticamente los archivos TSV. Si al hacer doble clic el archivo se abre con todos los datos en una sola columna, usa Datos → Obtener datos → Desde texto/CSV. Elige "Tabulación" como delimitador.
Excel a TSV: Archivo → Guardar como → Texto (delimitado por tabulaciones) (*.txt), y luego renombra el .txt a .tsv.
TSV en Python:
import csv
# Leer TSV
with open('datos.tsv', 'r') as f:
reader = csv.reader(f, delimiter='\t')
for fila in reader:
print(fila)
# Escribir TSV
with open('salida.tsv', 'w', newline='') as f:
writer = csv.writer(f, delimiter='\t')
writer.writerow(['Nombre', 'Email', 'Ciudad'])
writer.writerow(['Alicia', 'alicia@ejemplo.com', 'Madrid'])
TSV con pandas (Python):
import pandas as pd
# Leer
df = pd.read_csv('datos.tsv', sep='\t')
# Escribir
df.to_csv('salida.tsv', sep='\t', index=False)
# Convertir TSV a Excel
df.to_excel('salida.xlsx', index=False)
# Convertir TSV a CSV
df.to_csv('salida.csv', index=False)
Herramientas de línea de comandos:
# Contar filas (sin cabecera)
wc -l datos.tsv
# Obtener las 5 primeras filas
head -5 datos.tsv
# Obtener columnas específicas (1.ª y 3.ª)
cut -f1,3 datos.tsv
# Ordenar por segunda columna
sort -k2 -t$'\t' datos.tsv
Convertir TSV a otros formatos
TSV a CSV:
df = pd.read_csv('datos.tsv', sep='\t')
df.to_csv('datos.csv', index=False)
TSV a XLSX: df.to_excel('datos.xlsx', index=False) — pandas lo gestiona.
TSV a JSON:
import json, pandas as pd
df = pd.read_csv('datos.tsv', sep='\t')
df.to_json('datos.json', orient='records', indent=2)
Buenas prácticas con TSV
- Usa siempre la codificación UTF-8 — evita problemas de juego de caracteres entre sistemas
- Incluye una fila de cabecera — la primera línea con el nombre de cada columna
- Evita tabulaciones finales — algunos analizadores añaden una columna vacía adicional
- Usa saltos de línea Unix (\n) — los saltos de línea de Windows (\r\n) pueden causar problemas con
wc -ly algunos analizadores
Conversiones relacionadas
Conversiones frecuentes del catálogo: