Cookies para estatística e publicidade
Usamos cookies de estatística e de publicidade, ambos enviados ao Google. Recusar não muda nada do que você vê.Ler a página de privacidade
TSV
Como CSV, mas separado por tabulação — com isso o problema da vírgula dentro de um campo nem chega a existir.
TSV
TSV é um formato de texto puro que abre em qualquer editor. Ele é usado para mover dados entre programas.
A extensão é .tsv e o nome por extenso é Tab-Separated Values. Os dois importam menos do que aquilo que o arquivo consegue carregar, e é disso que trata o resto desta página.
Ele remonta a 1993. A especificação é IANA text/tab-separated-values.
A um formato que se manteve legível por tanto tempo dá para confiar algo que você quer de volta daqui a dez anos.
Ela está publicada por inteiro, então dá para implementá-la a partir do documento em vez de por observação — é por isso que o formato aparece em tantos programas e por isso que arquivos escritos há vinte anos ainda abrem. Especificação publicada não é o mesmo que livre de royalties: quando o formato embrulha um codec, o licenciamento das patentes é uma questão à parte, que a norma não resolve.
TSV guarda o conteúdo exatamente. Salvar de novo não muda nada, então dá para abrir, editar e salvar quantas vezes você quiser sem acumular estrago — e é isso que faz dele um formato de trabalho e não de entrega.
TSV não tem sintaxe de comentário. Tudo que explica precisa morar fora do arquivo, e é bom saber disso antes de escolhê-lo para algo que uma pessoa vai editar na mão.
Microsoft Excel, LibreOffice Calc e pandas leem esse formato, e a maioria dos programas do mesmo tipo também.
Quando um arquivo não abre, o formato raramente é o problema — mais comum é o programa ser mais antigo que ele. Converter para algo mais antigo é o caminho confiável, e é para isso que serve o resto deste site.
Nenhum navegador lê o formato.
Esse é de longe o motivo mais comum para convertê-lo: não que o formato seja ruim, mas que o lugar onde você quer mostrar o arquivo não consegue lê-lo.
TSV foi feito para ser aberto e alterado. Mantenha o arquivo nesse formato enquanto o trabalho estiver em andamento e exporte a partir dele sempre que precisar de uma cópia pronta.
As reclamações que se repetem: os tipos das colunas são adivinhados na importação em vez de declarados.
Nada disso é motivo para evitar o formato. São as coisas que vale conhecer antes que uma delas te pegue de surpresa, o que é uma afirmação diferente e mais útil.
Uma vírgula aparece o tempo todo dentro de dado real — em endereço, razão social, descrição de produto, qualquer texto livre. O CSV lida com isso com regras de aspas, e essas regras são onde o formato costuma quebrar: um campo contendo uma aspa dentro de um campo entre aspas contendo uma vírgula é válido, desagradável, e implementado de forma inconsistente por metade das ferramentas que dizem ler CSV.
Um caractere de tabulação quase nunca aparece dentro de um campo, porque ninguém digita uma tabulação num formulário ou num banco de dados. Então o TSV geralmente dispensa aspas por completo: divida cada linha pela tabulação e você tem os campos, corretamente, sem máquina de estados e sem caso extremo. Esse é o argumento inteiro, e em dado real e bagunçado ele é forte.
Bioinformática, onde arquivos de anotação genômica, matrizes de expressão e tabelas de variantes são separados por tabulação como questão de rotina. Trabalho de dados em linha de comando, porque as ferramentas Unix padrão dividem por espaço em branco, e um arquivo separado por tabulação é cidadão de primeira classe ali de um jeito que um CSV com aspas não é.
Também grandes conjuntos de dados públicos e exportações de banco de dados, onde o dado contém vírgulas e prosa, e quem exporta prefere não pensar em regra de aspas. Se te entregaram um .tsv ou um .tab, ele veio de um desses mundos.
A virtude da tabulação é também o seu defeito: você não consegue ver. Um arquivo com uma tabulação num lugar e quatro espaços em outro parece idêntico num editor e se processa de forma completamente diferente, e um valor que pegou uma tabulação sobrando no final é indistinguível de um que não pegou.
Isso morde mais forte quando um arquivo é editado à mão ou montado por um script que usou espaços em algum lugar. Qualquer editor decente consegue mostrar caracteres de espaço em branco, e ligar isso antes de mexer num TSV é um hábito de dois segundos que evita uma hora de confusão. É também por isso que um TSV nunca deveria ser montado por concatenação de string sem conferir o que os campos contêm.
A especificação da IANA é intransigente: campos não podem conter tabulação nem quebra de linha, ponto final. Não há mecanismo de escape, o que é justamente o que mantém o processamento simples.
Na prática surgiram duas convenções. Alguns produtores escapam com sequências de barra invertida, emprestadas do C; outros aplicam aspas ao estilo CSV por cima, o que reintroduz tudo que o TSV estava evitando. Nenhuma das duas é universal, então um arquivo com tabulações embutidas é um arquivo cujo leitor precisa combinar com quem o escreveu. Se seu dado genuinamente contém tabulação ou quebra de linha dentro de campos, CSV com aspas corretas é a escolha mais honesta.
O Excel abre um .txt ou .tsv pelo diálogo de importação e trata tabulações corretamente, e dar duplo clique num .tsv costuma fazer algo menos útil, dependendo do que está associado à extensão. Ele também aplica exatamente a mesma adivinhação de tipo que estraga CSVs — zeros à esquerda somem, código vira data, identificador longo perde precisão.
Então o conselho é idêntico ao do CSV: importe em vez de abrir, marque as colunas problemáticas como Texto, e se o destinatário é uma pessoa em vez de um programa, envie XLSX e remova a adivinhação por completo.
CSV quando o arquivo vai para algum lugar desconhecido. É o que formulários de upload, rotinas de importação e software comercial esperam pelo nome, e uma ferramenta que aceita só um dos dois aceita CSV.
TSV quando você controla os dois lados e o dado é bagunçado — cheio de vírgula, aspas e texto livre — ou quando o trabalho acontece na linha de comando. O processamento é mais simples, as falhas são menores, e ninguém precisa concordar sobre regra de aspas.
Converter entre os dois é mecânico numa direção e exige cuidado na outra: de CSV para TSV é preciso conferir que nenhum campo contém tabulação, e de TSV para CSV é preciso acrescentar aspas onde um campo contém vírgula. Um conversor que pula qualquer um dos dois produz um arquivo com aparência correta e colunas silenciosamente deslocadas.
O TSV faz streaming, que é sua outra vantagem discreta. Um arquivo de qualquer tamanho pode ser lido linha por linha sem carregar tudo de uma vez, então uma exportação de vários gigabytes fica administrável de um jeito que a planilha equivalente não fica.
Para qualquer coisa genuinamente grande e analisada repetidamente, Parquet é o destino melhor: colunar, comprimido, tipado, e dramaticamente mais rápido para as consultas que as pessoas de fato rodam. TSV é o formato certo para troca e o errado para um conjunto de dados que você vai ler cem vezes.
| Extensão | .tsv, .tab |
|---|---|
| Tipo de mídia | text/tab-separated-values |
| Primeira publicação | 1993 |
| Especificação | IANA text/tab-separated-values |