Un fichier CSV peut-il avoir un commentaire?

Existe-t-il un moyen officiel d'autoriser un fichier au format CSV à autoriser des commentaires, soit sur sa propre ligne, soit à la fin d'une ligne?

J'ai essayé de vérifier wikipedia à ce sujet et aussi RFC 4180 mais les deux ne mentionnent rien qui me porte à croire que cela ne fait pas partie du format de fichier donc ça porte malchance pour moi et je devrais alors utiliser un ReadMe séparé.fichier txt truc pour expliquer le fichier.

Enfin, je sais que c'est facile pour moi d'ajouter mes propres commentaires, mais j'ai été en espérant que quelque chose comme Excel il suffit d'importer directement sans avoir besoin pour un consommateur d'avoir à personnaliser le processus d'importation.

Alors, des pensées?

165
demandé sur smci 2009-12-25 14:20:56

7 réponses

La "norme" CSV (telle qu'elle est) ne dicte pas la façon dont les commentaires doivent être traités, non, c'est à l'application d'établir une convention et de s'en tenir à elle.

92
répondu skaffman 2009-12-25 11:27:52

Non, CSV ne spécifie aucun moyen de marquer les commentaires - ils seront simplement chargés par des programmes comme Excel en tant que cellules supplémentaires contenant du texte.

Le plus proche que vous pouvez gérer (avec CSV importé dans une application spécifique telle Qu'Excel) est de définir une manière spéciale de marquer les commentaires qu'Excel ignorera. Pour Excel, vous pouvez masquer le commentaire (à un degré limité) en l'intégrant dans une formule. Par exemple, essayez d'importer le fichier csv suivant dans Excel:

=N("This is a comment and will appear as a simple zero value in excel")
John, Doe, 24

Vous toujours se retrouver avec une cellule dans la feuille de calcul qui affiche le nombre 0, mais le commentaire est masqué.

Vous pouvez également masquer le texte en le remplissant simplement d'espaces afin qu'il ne soit pas affiché dans la partie visible de la cellule:

                              This is a sort-of hidden comment!,
John, Doe, 24

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

Nasty hacks, qui ne fonctionnera qu'avec Excel, mais ils peuvent il suffit de rendre votre sortie un peu plus nette après l'importation.

26
répondu Jason Williams 2009-12-25 12:26:53

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

J'utilise la bibliothèque d'analyse CSV ostermiller pour lire et traiter ces 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 les données réelles, pas de commentaires.

25
répondu Pedro_Uno 2016-10-27 20:37:42

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

La plupart des applications D'analyse CSV que j'ai utilisées implémentent à la fois le mappage de champs et le choix d'enregistrements. Donc, 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 deux seules raisons auxquelles je peux penser pour commenter un Fichier CSV. Mais le seul problème que je peux prévoir serait les programmes qui refusent d'accepter le fichier si un seul enregistrement ne passe 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 tous les champs numériques.

Je suis pas un expert, mais, alors n'hésitez pas à signaler toute erreur dans ma théorie.

6
répondu Tyler Wayne 2012-06-02 07:18:33

Un Fichier Séparé par des Virgules est vraiment juste un fichier texte où les lignes sont constituées de valeurs séparées par des virgules.

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

Bien sûr, C'est généralement Excel. Vous devriez vous demander comment Excel définit-il un commentaire? En d'autres termes, quel serait Excel ignorer une ligne (ou d'une partie d'une ligne) dans le fichier CSV? Je suis pas au courant de quoi que ce soit qui ferait cela.

2
répondu pavium 2009-12-25 11:36:57

Si vous analysez le fichier avec une commande FOR dans un fichier batch, un point-virgule fonctionne (;)

REM test.bat contents

for /F "tokens=1-3 delims=," %%a in (test.csv) do @Echo %%a, %%b, %%c

;test.csv contents (this line is a comment)

;1,ignore this line,no it shouldn't

2,parse this line,yes it should!

;3,ignore this line,no it shouldn't

4,parse this line,yes it should!

Sortie:

2, parse this line, yes it should!

4, parse this line, yes it should!
2
répondu Ken Bob Saxton 2016-03-03 18:52:59

Si vous avez besoin de quelque chose comme:

  │ A                              │ B
──┼────────────────────────────────┼───
1 │ #My comment, something else    │
2 │ 1                              │ 2

Votre CSV peut contenir les lignes suivantes:

"#My comment, something else"
1,2

Portez une attention particulière aux "guillemets" de la première ligne.

Lors de la conversion de votre texte en colonnes à l'aide de L'Assistant Excel, n'oubliez pas de vérifier le 'traiter les délimiteurs consécutifs comme un', en le définissant pour utiliser 'guillemets' comme délimiteur.

Ainsi, Excel divisera le texte à la virgule, en gardant la ligne 'comment' comme une seule valeur de colonne (et il supprimera les guillemets).

1
répondu Rogerio Granato 2016-01-28 14:02:15