CSV vs TSV : Quel format de délimiteur utiliser ?
Réponse rapide
Utilisez CSV pour l'échange de données à usage général, l'importation/exportation de feuilles de calcul et une compatibilité maximale. Utilisez TSV lorsque vos données contiennent des virgules mais pas des tabulations, pour éviter les guillemets et échapper à la complexité. TSV est courant en bioinformatique et en PNL ; CSV est la valeur par défaut universelle pour les données tabulaires.
Introduction
CSV (Valeurs séparées par des virgules) et TSV (Valeurs séparées par des tabulations) sont deux formats de texte brut pour les données tabulaires. Les deux stockent les lignes sous forme de lignes avec des champs séparés par un délimiteur. CSV utilise des virgules ; TSV utilise des caractères de tabulation. Le choix du délimiteur affecte l'échappement, la compatibilité avec les applications de feuille de calcul et la gestion des champs de texte contenant le délimiteur.
Pas à pas
-
Comparer le délimiteur et l'échappement
CSV utilise des virgules. Si un champ contient une virgule, elle doit être entourée de guillemets : "Smith, John". Si un champ contient des guillemets, il faut les échapper : "Il a dit ""bonjour""". TSV utilise des onglets. Les onglets apparaissent rarement dans les données texte, donc les champs TSV ne nécessitent généralement pas de guillemets ni d'échappement - une analyse plus simple.
-
Comparer la compatibilité
CSV est universellement pris en charge : Excel, Google Sheets=Sheets, chaque base de données, chaque langage de programmation. TSV est également largement pris en charge mais moins standardisé : certains outils interprètent les onglets différemment. Excel détecte automatiquement les deux, mais CSV est le format d'exportation par défaut.
-
Comparer la complexité de l'analyse
L'analyse CSV nécessite une machine à états pour gérer les règles de citation (RFC 4180). L'analyse TSV est triviale : divisez chaque ligne par caractère de tabulation. Cela rend TSV plus rapide à analyser et moins sujet aux erreurs. Cependant, CSV a une spécification formelle (RFC 4180) ; TSV n'a pas de norme formelle.
-
Comparez les cas d'utilisation
CSV : import/export de feuilles de calcul, données APIs, pipelines ETL, fichiers de configuration, échange de données universel. TSV : bioinformatique (BLAST, GFF), NLP (format CoNLL), données du presse-papiers (copie depuis Excel = TSV), fichiers journaux avec délimiteurs de tabulations.
-
Décidez en fonction de vos données
Si vos données contiennent des virgules (noms, adresses, phrases) : TSV évite les guillemets. Si vos données contiennent des tabulations (rare dans le texte) : CSV évite les citations. Si vous avez besoin d'une compatibilité maximale : CSV. Si vous souhaitez une analyse plus simple et que vos données sont sans tabulation : TSV.
Exemples
Mêmes données dans CSV et TSV
Saisir: CSV : nom, âge, ville\n"Smith, John",30,"New York, NY"\nTSV : nom\tage\tville\nSmith, John\t30\tNew York, NY
Sortir: CSV nécessite des guillemets pour les champs contenant des virgules. TSV n'a pas besoin d'être cité car les onglets n'apparaissent pas dans les données.
Problèmes courants
- CSV citations de cas extrêmes : les champs contenant des virgules, des guillemets ou des nouvelles lignes nécessitent des règles de citation RFC 4180 – une division naïve par virgule corrompt les données avec des virgules intégrées.
- TSV n'a pas de norme formelle : contrairement à CSV (RFC 4180), TSV n'a pas de spécification officielle, les outils peuvent donc gérer les cas extrêmes différemment : utilisez TSV uniquement dans les pipelines contrôlés.
- Problèmes d'encodage Excel : Excel peut exporter CSV avec des délimiteurs de nomenclature ou spécifiques aux paramètres régionaux (point-virgule dans les paramètres régionaux de l'UE) – spécifiez l'encodage UTF-8 et vérifiez le délimiteur lors de l'importation.
- Ambiguïté de nouvelle ligne : les champs CSV avec des nouvelles lignes intégrées sont valides mais interrompent l'analyse ligne par ligne - TSV a rarement ce problème car les tabulations sont rares dans les données texte.
Conseils
- Utilisez CSV pour une compatibilité maximale : chaque feuille de calcul, base de données et langage de programmation le prend en charge de manière native.
- Utilisez TSV lorsque vos données contiennent des virgules mais pas de tabulations (noms, adresses, phrases) pour éviter de citer entièrement la complexité.
- Utilisez toujours un analyseur CSV approprié (et non string.split) pour gérer les règles de citation de la RFC 4180 : le fractionnement naïf corrompt les champs contenant des virgules ou des guillemets intégrés.
- Lors de la copie de données d'Excel vers un éditeur de texte, le presse-papiers utilise le format TSV : collez-le dans un fichier .tsv pour conserver correctement les champs avec des virgules.