web-dev-qa-db-fra.com

Un fichier CSV peut-il avoir un commentaire?

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

J'ai essayé de vérifier wikipedia à ce sujet et aussi RFC 418 mais les deux ne mentionnent rien qui m'amène à croire que cela ne fait pas partie du format de fichier, c'est donc une malchance pour moi et Je devrais alors utiliser un fichier distinct ReadMe.txt pour expliquer le fichier.

Enfin, je sais que c’est facile pour moi d’ajouter mes propres commentaires, mais j’espérais que quelque chose comme Excel pourrait simplement l’importer immédiatement sans qu’un consommateur ait à personnaliser le processus d’importation.

Alors, des pensées?

184
Pure.Krome

Le "standard" CSV (tel quel) ne dicte pas la manière dont les commentaires doivent être traités, non, il appartient à l'application d'établir une convention et de s'y tenir.

107
skaffman

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

Le plus proche que vous puissiez gérer (avec CSV importé dans une application spécifique telle que Excel) consiste à définir une méthode spéciale de marquage des commentaires qu'Excel ignorera. Pour Excel, vous pouvez "masquer" le commentaire (dans une mesure limitée) 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 vous retrouvez toujours avec une cellule dans la feuille de calcul qui affiche le nombre 0, mais le commentaire est masqué.

Alternativement, vous pouvez masquer le texte en le complétant simplement avec des 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 pour qu'Excel remplisse la cellule suivante et masque ainsi toute partie du texte qui ne rentre pas dans la cellule.

Mauvais hacks, qui ne fonctionneront qu’avec Excel, mais ils suffiront peut-être à donner à votre sortie un aspect un peu plus ordonné après l’importation.

27
Jason Williams

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 = bibliothèque d'analyse ostermiller CSV pour 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.

26
Pedro_Uno

Je pense que le meilleur moyen d’ajouter des commentaires à un fichier CSV serait d’ajouter un champ "Commentaires" ou un enregistrement directement dans les données.

La plupart des applications d'analyse CSV que j'ai utilisées implémentent à la fois la cartographie des champs et le choix des enregistrements. Ainsi, pour commenter les propriétés d'un champ, ajoutez un enregistrement uniquement 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 pour lesquelles je peux penser à commenter un fichier CSV. Mais le seul problème que je puisse prévoir serait celui des programmes qui refusent d’accepter le fichier si un seul enregistrement ne respecte pas certaines règles de validation. Dans ce cas, vous auriez des difficultés à écrire un enregistrement de description de champ de type chaîne pour des champs numériques.

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

6
Tyler Wayne

Un fichier séparé par des virgules n'est en réalité qu'un fichier texte dont 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'y a pas de moyen défini pour 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 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 au courant de rien qui puisse faire cela.

3
pavium

Si vous analysez le fichier avec une commande FOR dans un fichier de commandes, 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!
3
Ken Bob Saxton

Si vous avez besoin de quelque chose comme:

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

Votre fichier CSV peut contenir les lignes suivantes:

"#My comment, something else"
1,2

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

Lors de la conversion de votre texte en colonnes à l'aide de l'assistant d'Excel, n'oubliez pas de cocher la case "Traiter les délimiteurs consécutifs comme un", en le configurant pour qu'il utilise les "guillemets" comme délimiteur.

Ainsi, Excel divisera le texte par des virgules, en conservant la ligne "commentaire" comme valeur de colonne unique (et supprimera les guillemets).

2
Rogerio Granato