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
Aqui você converte CSV para TSV de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.
Até 100 arquivos de uma vez. Formatos misturados não são problema.
Eles são convertidos um após o outro e baixados juntos em um ZIP.
CSV para TSV
Boa parte dos arquivos com extensão .csv é separada por ponto e vírgula. O Excel escreve assim em qualquer configuração regional onde a vírgula é separador decimal — praticamente toda a Europa continental e boa parte da América do Sul —, porque um arquivo usando a vírgula para as duas coisas ficaria ilegível.
O leitor aqui descobre qual caractere é olhando o arquivo, não o nome, então uma exportação com ponto e vírgula converte sem precisar de aviso. Onde isso falha é num arquivo de uma coluna só: sem separador presente em lugar nenhum, a detecção não tem em que se basear, e é aí que o controle manual de separador nesta página entra.
Vírgula é um separador ruim justamente porque aparece o tempo todo em dados reais: endereço tem vírgula, descrição de produto tem vírgula, razão social terminando em "Ltda." tem vírgula. Todo campo assim precisa ser envolto em aspas, e cada programa que consome o arquivo precisa implementar direito a convenção de aspas.
Tabulação quase nunca aparece no tipo de dado que as pessoas colocam em tabelas, então o separador para de competir com o conteúdo. Depois desta conversão, o campo "São Paulo, SP" aparece exatamente assim, sem aspas nenhuma na linha, e qualquer coisa que divida por tabulação recupera o valor certo.
O controle oferece detecção automática, vírgula, ponto e vírgula, tabulação e barra vertical. Automático acerta quase sempre, porque um arquivo com várias colunas dá bastante evidência para o detector.
Vale nomear o separador manualmente em dois casos: um arquivo de coluna única, onde não há o que detectar; e um arquivo com uma coluna cheia do caractere errado — um campo de observações repleto de ponto e vírgula dentro de uma exportação separada por vírgula. Se o resultado mostrar uma coluna onde deveriam ser seis, ou o contrário, é isso que ajustar primeiro.
Tabulações dentro de campos de CSV acontecem, geralmente porque alguém colou de uma página web ou de outra planilha dentro de uma célula. No arquivo de origem isso é inofensivo, porque o separador é vírgula. Na saída não é, e o conversor lida com isso envolvendo esse campo em aspas duplas.
O resultado é correto para um leitor completo — mas TSV costuma ser escolhido justamente por quem não vai usar um leitor completo: `cut -f` conta caracteres de tabulação e não sabe o que é uma aspa. Se um pipeline produzir saída desalinhada em algumas linhas, essa é quase sempre a causa. Limpe as tabulações na origem antes de converter.
Uma exportação europeia com ponto e vírgula costuma escrever 1234,56 onde uma versão em português do Brasil escreveria o mesmo formato — mas um arquivo americano escreveria 1234.56. A conversão não traduz isso, e não deveria: não há como saber se "1.234" significa mil duzentos e trinta e quatro ou um vírgula duzentos e trinta e quatro.
O valor permanece exatamente como escrito e, por não parecer número ao leitor, permanece texto. Uma coluna de preço estrangeira atravessa o TSV intacta, e o que vier a ler o arquivo depois precisa ser avisado da convenção decimal usada — em R isso é `dec = ","` na leitura; em pandas, `decimal=","`.
Não é uma troca de byte a byte de um separador por outro. O arquivo é lido linha a linha e reescrito, e no caminho valores com cara de número são lidos como número. `true` e `false` viram booleano e voltam como palavra minúscula. Um campo vazio vira nulo e volta como campo vazio — o único caso em que nada visível muda.
A vítima é o zero à esquerda: uma coluna de CEP guardando 01234 chega ao TSV como 1234, e um código de peça com zeros de preenchimento perde eles em silêncio. O teste é simples: se somar dois valores da coluna não faz sentido, é um identificador e corre risco. Confira essa coluna antes de confiar no resultado.
Campos só são colocados entre aspas no TSV quando precisam: quando contêm tabulação, aspas duplas ou quebra de linha. Tudo o mais é escrito solto. Um CSV que chegou com aspas em todo campo — alguns exportadores fazem isso sem necessidade — sai quase sem nenhuma, o que é uma redução real de tamanho num arquivo largo.
Uma aspa dupla dentro de um campo que precisa de aspas é duplicada, a mesma convenção do CSV. Vale saber se o destino for algo que separa de forma ingênua, porque uma coluna de texto livre com aspas dentro é a outra coisa que gera um campo entre aspas onde ninguém esperava.
Linhas são separadas por um único caractere de nova linha, e não pelo par usado no Windows, e o texto é UTF-8 sem marca de ordem de bytes. É o que um pipeline Unix, um diff do Git, R e pandas esperam, e é o que a maioria das ferramentas Windows aceita hoje também.
A ausência da marca de ordem de bytes tem uma consequência: abrir o arquivo com duplo clique no Excel do Windows pode mostrar acento como texto corrompido, já que o Excel recorre à codificação padrão do sistema quando não há marca dizendo o contrário. Importar via Dados, Obter Dados, De Texto/CSV e escolher UTF-8 evita isso.
Os dois formatos são texto puro e os dois leitores são JavaScript puro, então a conversão inteira roda nesta página. Nenhuma requisição carrega o arquivo para lugar nenhum, não há fila e não há nível pago — o que importa porque um CSV costuma ser lista de cliente, exportação de pedido ou extrato de sistema, dados que seria constrangedor explicar por que foram enviados a terceiros.
O limite é a memória, não uma política: o arquivo inteiro é lido em linhas antes de ser escrito, então dezenas de megabytes são rotina, e centenas é onde uma aba começa a sofrer. Passado isso, um leitor por streaming num script é a ferramenta certa.
Se o destino é uma tela de importação que pede CSV literalmente, deixe como CSV — muitos formulários levam a palavra ao pé da letra e recusam um arquivo separado por tabulação por mais sensata que seja a escolha. Não vale a briga.
Saída separada por tabulação vale a pena quando algo vai dividir o arquivo por caractere em vez de fazer uma leitura completa: um script de shell, um script em R, uma colagem num programa com importação por tabulação. Se os valores precisam manter o tipo na jornada, nenhum formato delimitado ajuda — um arquivo de texto não distingue o número 7 da string "7" — e JSON, NDJSON ou Parquet é o destino honesto.
| CSV | TSV | |
|---|---|---|
| Nome completo | Comma-Separated Values | Tab-Separated Values |
| Extensão do arquivo | .csv | .tsv, .tab |
| Tipo de mídia | text/csv | text/tab-separated-values |
| Publicado pela primeira vez | 1972 | 1993 |
| Especificação | RFC 4180 | IANA text/tab-separated-values |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Atual | Atual |
| Abre no navegador | Nenhum navegador | Nenhum navegador |
| Considerado no lugar | XLSX, JSON, Parquet | JSON |
Nada é descartado. CSV e TSV guardam o conteúdo sem perda, então a conversão troca a embalagem e não a qualidade — e pode ser repetida sem que o estrago se acumule.
Microsoft Excel, LibreOffice Calc e pandas leem tanto CSV quanto TSV, então dá para comparar o resultado com o original sem um segundo programa.
CSV foi publicado em 1972. Está descrito em RFC 4180, e vale conhecer se o arquivo precisa sobreviver à ferramenta que o escreveu.
TSV e de 1993, descrito em IANA text/tab-separated-values. Microsoft Excel, LibreOffice Calc e pandas leem o formato.
CSV foi publicado em 1972 e TSV em 1993. O mais antigo costuma ser o arquivo mais seguro para entregar; o mais novo faz o mesmo com menos bytes.
Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo.
É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez.
Não. TSV guarda o mesmo conteúdo sem jogar nada fora: o resultado é idêntico em qualidade ao original.
Nada é descartado. CSV e TSV guardam o conteúdo sem perda, então a conversão troca a embalagem e não a qualidade — e pode ser repetida sem que o estrago se acumule.