275 votes

Est-ce qu'un fichier CSV peut contenir un commentaire ?

Existe-t-il une manière officielle de permettre à un fichier au format CSV d'autoriser des commentaires, que ce soit sur sa propre ligne ou à la fin d'une ligne ?

J'ai essayé de vérifier wikipedia sur ce sujet et aussi RFC 4180 mais aucun des deux ne mentionne quoi que ce soit ce qui me laisse penser que cela ne fait pas partie du format de fichier donc c'est pas de chance pour moi et je devrais alors utiliser un fichier ReadMe.txt séparé pour expliquer le fichier.

Enfin, je sais qu'il est facile pour moi d'ajouter mes propres commentaires, mais j'espérais que quelque chose comme Excel pourrait simplement l'importer directement sans avoir besoin de personnaliser le processus d'importation par un utilisateur.

Alors, des pensées ?

1 votes

Que commenteriez-vous? Les valeurs dans chaque ligne ou le fichier lui-même? Le fichier XML est-il une alternative pour vous?

3 votes

La proposition a été rejetée pour Python.

3 votes

Peut-être une chaîne de version pour les données @SquareRigMaster. Tout comme j'essaie de le faire maintenant?

159voto

skaffman Points 197885

Le CSV "standard" (tel qu'il est) ne dicte pas comment les commentaires doivent être gérés, c'est à l'application d'établir une convention et de s'y tenir.

26 votes

RFC 4180 est désormais la norme.

46 votes

RFC 4180 n'est pas une norme, rfc4180 indique : "Cette note fournit des informations à la communauté Internet. Elle ne spécifie aucune norme Internet en particulier. La distribution de cette note est illimitée."

22 votes

D'accord, peut-on dire que c'est une norme de facto ?

52voto

peter dudley Points 71

Dans les données d'ingénierie, il est courant de voir le symbole # dans la première colonne utilisé pour signaler un commentaire.

J'utilise la bibliothèque de parsing CSV ostermiller pour Java afin de lire et traiter de tels fichiers. Cette bibliothèque vous permet de définir le caractère de commentaire. Après l'opération d'analyse, vous obtenez un tableau contenant uniquement les données réelles, sans commentaires.

1 votes

Certains analyseurs (y compris Matlab) prennent en charge la détection des lignes commençant par un caractère préfixe et les traitent différemment comme des commentaires, etc. Par exemple, l'ajout d'une sorte de version 'méta' pour optimiser/guider l'interprétation du code des données peut être réalisé via un commentaire et '#' est ce que j'ai le plus souvent vu et utilisé : #Csv/Version 1.9 Temps,ValeurA,ValeurB 0.0, 123, 456 0.1, 123, 349

2 votes

Avec emacs, csv-comment-start est par défaut #

2 votes

L'utilisation de # est également une norme de facto dans les formats TSV ("formats CoNLL") en technologie du langage. Ces formats existent depuis plus d'une décennie avant la spécification CSV actuelle. La principale différence par rapport au CSV est qu'ils exigent que le séparateur soit une TABULATION (ou, antérieurement, un ESPACE) plutôt qu'une virgule, mais techniquement, cela est toujours considéré comme un format CSV.

35voto

Jason Williams Points 31901

Non, le CSV ne spécifie aucune façon d'étiqueter les commentaires - ils seront simplement chargés par des programmes comme Excel en tant que cellules supplémentaires contenant du texte.

La chose la plus proche que vous pouvez gérer (en important un CSV dans une application spécifique comme Excel) est de définir une façon spéciale d'étiqueter les commentaires que Excel ignorera. Pour Excel, vous pouvez "cacher" le commentaire (dans une certaine mesure) en l'intégrant dans une formule. Par exemple, essayez d'importer le fichier csv suivant dans Excel:

=N("Ceci est un commentaire et apparaîtra comme une simple valeur zéro dans excel")
John, Doe, 24

Vous finissez toujours avec une cellule dans le tableur qui affiche le nombre 0, mais le commentaire est caché.

Alternativement, vous pouvez masquer le texte en le remplissant simplement d'espaces pour qu'il ne soit pas affiché dans la partie visible de la cellule:

                              Ceci est un commentaire un peu caché!,
John, Doe, 24

Notez que vous devez suivre le texte du commentaire d'une virgule afin qu'Excel remplisse la cellule suivante et cache ainsi toute partie du texte qui ne rentre pas dans la cellule.

Astuce peu recommandée, qui ne fonctionnera qu'avec Excel, mais qui peut suffire à rendre votre sortie un peu plus propre après l'importation.

9voto

Tyler Wayne Points 183

Je pense que la meilleure façon d'ajouter des commentaires à un fichier CSV serait d'ajouter un champ ou un enregistrement "Commentaires" directement dans les données.

La plupart des applications d'analyse CSV que j'ai utilisées mettent en œuvre à la fois la correspondance des champs et le choix des enregistrements. Ainsi, pour commenter les propriétés d'un champ, ajoutez un enregistrement juste pour les descriptions de champ. Pour commenter un enregistrement, ajoutez un champ à la fin de celui-ci (enfin, à tous les enregistrements, vraiment) juste pour les commentaires.

Ce sont les seules deux raisons auxquelles je peux penser pour commenter un fichier CSV. Mais le seul problème que je peux envisager serait les programmes qui refusent d'accepter le fichier si un seul enregistrement ne respecte pas certaines règles de validation. Dans ce cas, vous auriez du mal à écrire un enregistrement de description de champ de type chaîne pour des champs numériques.

Je ne suis en aucun cas un expert, alors n'hésitez pas à me signaler d'éventuelles erreurs dans ma théorie.

2 votes

Et, je viens de lire que vous ne vouliez pas personnaliser le processus d'importation. Désolé pour cela. Espérons que quelqu'un trouve cela utile, alors.

1 votes

Bon post. Une autre raison à laquelle je peux penser pour laquelle vous pourriez vouloir des commentaires est d'ajouter des métadonnées sur le fichier dans son ensemble. Ajouter une colonne ou une ligne entière juste pour une cellule avec ces infos semble un peu maladroit.

6voto

pavium Points 7845

Un fichier séparé par des virgules est simplement un fichier texte où les lignes sont composées de valeurs séparées par des virgules.

Il n'existe pas de norme définissant le contenu d'un fichier CSV, donc il n'y a pas de manière définie d'indiquer un commentaire. Cela dépend du programme qui importera le fichier CSV.

Bien sûr, il s'agit généralement d'Excel. Vous devriez vous demander comment Excel définit un commentaire ? En d'autres termes, qu'est-ce qui ferait qu'Excel ignore une ligne (ou une partie d'une ligne) dans le fichier CSV ? Je ne suis pas au courant de quelque chose qui ferait cela.

2 votes

Il n'existe pas de norme qui définit le contenu d'un fichier CSV Faux.

5 votes

@Qix - de la section 2 du document référencé : "Bien qu'il existe différentes spécifications et implémentations pour le format CSV (par ex. [4], [5], [6] et [7]), il n'existe aucune spécification formelle."

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X