====== Comma-Separated Values CSV ====== {{tag>"culture informatique"}} {{ :dummy.png?75x75}} CSV signifie "**Comma-Separated Values**" (Valeurs séparées par des virgules) et est un format de fichier simple pour stocker des données tabulaires. Les données sont stockées en lignes et en colonnes, avec chaque ligne représentant un enregistrement et chaque colonne représentant un champ dans cet enregistrement. Les colonnes sont séparées par une virgule, ce qui permet de les distinguer les unes des autres. Les fichiers CSV sont souvent utilisés pour transférer des données entre différents systèmes, car ils peuvent être lus et écrits par de nombreux logiciels différents, y compris les feuilles de calcul et les bases de données. ===== Caractéristiques ===== Il n'y a pas de versions officielles de CSV. Le format CSV est un standard ouvert qui n'a pas été développé par une organisation ou une entreprise en particulier. Cependant, il existe plusieurs implémentations du format CSV, qui peuvent varier en ce qui concerne les séparateurs de colonnes, les encodages de caractères et les règles de gestion des valeurs enveloppées dans des guillemets. Par exemple, certaines implémentations peuvent utiliser des tabulations plutôt que des virgules pour séparer les colonnes, ou peuvent utiliser des guillemets doubles plutôt que simples pour envelopper les valeurs contenant des virgules. Les caractéristiques communément admises d'un fichier CSV sont les suivantes : * **Séparateur de colonnes** : Les colonnes sont séparées par une virgule, ce qui permet de distinguer les différentes valeurs dans une même ligne. * **Encodage** : Les fichiers CSV sont généralement encodés en UTF-8, qui est un encodage de caractères universel qui peut gérer de nombreuses langues et scripts. * **Valeurs enveloppées** : Les valeurs qui contiennent des virgules, des sauts de ligne ou des guillemets sont généralement enveloppées dans des guillemets doubles. Les guillemets doubles à l'intérieur de ces valeurs sont échappées en utilisant un double guillemet. * **Saut de ligne** : Les lignes sont séparées par un saut de ligne. Cela permet de stocker plusieurs enregistrements dans un même fichier CSV. * **Valeur vide** : Les valeurs vides sont généralement représentées par une chaîne vide entre deux virgules. Ces caractéristiques constituent une définition commune pour les fichiers CSV, mais il est important de vérifier les spécifications précises de chaque implémentation pour être sûr de leur utilisation correcte. ===== Les sauts de lignes ===== Les fichiers CSV utilisent généralement des **sauts de ligne** pour séparer les enregistrements. Il existe deux types de sauts de ligne couramment utilisés : * **Saut de ligne UNIX (LF)** : Ce type de saut de ligne est utilisé sur les systèmes d'exploitation UNIX et Linux et est représenté par un simple retour chariot (\n). * **Saut de ligne Windows (CRLF)** : Ce type de saut de ligne est utilisé sur les systèmes d'exploitation Windows et est représenté par un retour chariot suivi d'un avance de ligne (\r\n). Il est important de s'assurer que le fichier CSV utilise le type de saut de ligne correct pour le système d'exploitation cible, afin d'éviter les erreurs lors de la lecture des données. Certaines applications peuvent automatiquement détecter et gérer les deux types de sauts de ligne, mais d'autres peuvent nécessiter un type spécifique. Il est possible de convertir les sauts de ligne sous Linux. Il existe plusieurs moyens de le faire, notamment en utilisant des outils en ligne de commande tels que ''sed'' ou ''awk''. Voici un exemple de conversion de sauts de ligne Windows (CRLF) en sauts de ligne UNIX (LF) à l'aide de la commande sed : sed 's/\r//' nom_du_fichier.csv > nom_du_fichier_converti.csv Cela remplacera tous les retours chariot (\r) dans le fichier d'origine par des sauts de ligne (\n), produisant ainsi un fichier converti avec des sauts de ligne UNIX. Il existe également de nombreux outils en ligne de commande et graphiques pour convertir les sauts de ligne, ainsi que des bibliothèques et des API pour des langages de programmation tels que Python, qui peuvent être utilisés pour automatiser ce processus. Voici un exemple de conversion de sauts de ligne UNIX (LF) en sauts de ligne Windows (CRLF) à l'aide de la commande sed : sed 's/$/\r/' nom_du_fichier.csv > nom_du_fichier_converti.csv Cela ajoutera un retour chariot (\r) à la fin de chaque ligne du fichier d'origine, produisant ainsi un fichier converti avec des sauts de ligne Windows. ===== La première ligne ===== En ce qui concerne la **première ligne des fichiers CSV**, elle est généralement utilisée pour les en-têtes de colonnes, qui décrivent les différents champs de données dans le fichier. Il n'y a pas de règle de nommage strictement admise pour les en-têtes de colonnes dans les fichiers CSV, mais il existe quelques pratiques courantes pour les rendre claires et informatives : * Utiliser des noms de colonnes significatifs : Les noms de colonnes devraient décrire le contenu des colonnes associées. Par exemple, "nom", "adresse", "ville" sont des noms de colonnes significatifs pour une table de contacts. * **Éviter les espaces et les caractères spéciaux** : Les espaces et les caractères spéciaux peuvent poser des problèmes lors de la lecture des fichiers CSV, il est donc préférable d'utiliser des caractères alphanumériques pour les noms de colonnes. * **Respecter la casse** : Il est courant d'utiliser la casse **Camel** pour les noms de colonnes, avec la première lettre en minuscule et les mots suivants en majuscules. Cependant, il est important de suivre une convention de nommage cohérente pour éviter les erreurs. En fin de compte, l'utilisation d'en-têtes de colonnes clairs et informatifs peut rendre les données plus faciles à comprendre et à utiliser pour les personnes qui les lisent. La **casse** désigne la distinction entre les lettres majuscules et minuscules dans une chaîne de caractères. Il existe plusieurs conventions de casse couramment utilisées pour les noms de variables, de fonctions et de colonnes dans les fichiers CSV : * **CamelCase** : La première lettre de chaque mot est en minuscules, sauf la première, qui est en majuscules. Par exemple : "firstName", "lastName", "postalCode". * **snake_case** : Les mots sont séparés par des tirets bas et toutes les lettres sont en minuscules. Par exemple : "first_name", "last_name", "postal_code". * **ALL_CAPS** : Toutes les lettres sont en majuscules. Par exemple : "FIRST_NAME", "LAST_NAME", "POSTAL_CODE". * **PascalCase** : La première lettre de chaque mot est en majuscules. Par exemple : "FirstName", "LastName", "PostalCode". Il est important de choisir une convention de casse pour les noms de colonnes dans un fichier CSV et de la suivre de manière cohérente. Cela peut aider à éviter les erreurs et les confusion lors de la lecture des données. --- //[[user:cedricAbonnel]] & [[user:CPT]] - Article paru initialement le Mardi 7 Février 2023 //