Kann eine CSV-Datei einen Kommentar haben?

203

Gibt es eine offizielle Möglichkeit, einer CSV-formatierten Datei zu erlauben, Kommentare entweder in einer eigenen Zeile oder am Ende einer Zeile zuzulassen?

Ich habe versucht, Wikipedia auf diesem und auch RFC 4180 zu überprüfen, aber beide erwähnen nichts, was mich glauben lässt, dass es nicht Teil des Dateiformats ist, also ist es Pech für mich und ich sollte dann ein separates ReadMe.txt-Dateiding verwenden, um das zu erklären Datei.

Schließlich weiß ich, dass es für mich einfach ist, meine eigenen Kommentare hinzuzufügen, aber ich hatte gehofft, dass so etwas wie Excel es einfach sofort importieren kann, ohne dass ein Verbraucher den Importprozess anpassen muss.

Also Gedanken?

Pure.Krome
quelle
1
Was würdest du kommentieren? Die Werte in jeder Zeile oder die Datei selbst? Ist eine XML-Datei eine Alternative für Sie?
Square Rig Master
3
Das Preposal wurde für Python abgeschossen .
new123456
2
Möglicherweise eine Versionszeichenfolge für die Daten @SquareRigMaster. Genau wie ich es jetzt versuche?
Rob Wells
@SquareRigMaster - Oder eine Copyright-Erklärung.
Richard Smith

Antworten:

116

Der CSV "Standard" (wie er ist) schreibt nicht vor, wie mit Kommentaren umgegangen werden soll. Nein, es liegt an der Anwendung, eine Konvention festzulegen und diese einzuhalten.

Skaffman
quelle
23
RFC 4180 ist jetzt der Standard.
Vipw
34
RFC 4180 ist kein Standard, rfc4180 sagt: "Dieses Memo enthält Informationen für die Internet-Community. Es gibt keinerlei Internet-Standard an. Die Verbreitung dieses Memos ist unbegrenzt."
Paul Weibert
14
OK, können wir sagen, dass dies ein De-facto-Standard ist?
Marco Sulla
1
Alle RFCs sind Memos, die keinen Internetstandard
AFAIK
5
Yah ... das stimmt nicht. Es gibt Standard-Track-Dokumente und Nicht-Standard-Track-Dokumente (Informationsdokumente). Der gesamte Prozess, einschließlich Beschreibungen, Prozessen und Regeln für von der IETF ausgestellte Dokumente, wird von RFC2026 definiert, wobei einige Änderungen folgen. Jeder RFC gibt zu Beginn an, auf welcher Spur er sich befindet.
Steve Hole
31

In technischen Daten wird häufig das #Symbol in der ersten Spalte angezeigt, mit dem ein Kommentar signalisiert wird.

Ich verwende die ostermiller CSV-Parsing-Bibliothek , um solche Dateien zu lesen und zu verarbeiten. In dieser Bibliothek können Sie das Kommentarzeichen festlegen. Nach dem Analysevorgang erhalten Sie ein Array, das nur die realen Daten enthält, keine Kommentare.

Pedro_Uno
quelle
30

Nein, CSV gibt keine Möglichkeit zum Kommentieren von Kommentaren an. Sie werden lediglich von Programmen wie Excel als zusätzliche Zellen mit Text geladen.

Am besten können Sie verwalten (wenn CSV in eine bestimmte Anwendung wie Excel importiert wird), indem Sie eine spezielle Methode zum Markieren von Kommentaren definieren, die Excel ignoriert. In Excel können Sie den Kommentar (in begrenztem Umfang) "ausblenden", indem Sie ihn in eine Formel einbetten. Versuchen Sie beispielsweise, die folgende CSV-Datei in Excel zu importieren:

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

Sie haben immer noch eine Zelle in der Tabelle, in der die Nummer 0 angezeigt wird, aber der Kommentar ist ausgeblendet.

Alternativ können Sie den Text ausblenden, indem Sie ihn einfach mit Leerzeichen auffüllen, damit er nicht im sichtbaren Teil der Zelle angezeigt wird:

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

Beachten Sie, dass Sie dem Kommentartext ein Komma folgen müssen, damit Excel die folgende Zelle ausfüllt und somit alle Teile des Textes ausblendet, die nicht in die Zelle passen.

Unangenehme Hacks, die nur mit Excel funktionieren, aber möglicherweise ausreichen, um Ihre Ausgabe nach dem Import etwas aufgeräumter erscheinen zu lassen.

Jason Williams
quelle
6

Ich denke, der beste Weg, Kommentare zu einer CSV-Datei hinzuzufügen, besteht darin, ein Feld "Kommentare" oder einen Datensatz direkt in die Daten einzufügen.

Die meisten von mir verwendeten CSV-Parsing-Anwendungen implementieren sowohl die Feldzuordnung als auch die Datensatzauswahl. Um die Eigenschaften eines Feldes zu kommentieren, fügen Sie einen Datensatz nur für Feldbeschreibungen hinzu. Um einen Datensatz zu kommentieren, fügen Sie am Ende ein Feld hinzu (also wirklich alle Datensätze), nur für Kommentare.

Dies sind die einzigen zwei Gründe, warum ich mir vorstellen kann, eine CSV-Datei zu kommentieren. Das einzige Problem, das ich vorhersehen kann, sind Programme, die sich weigern, die Datei überhaupt zu akzeptieren, wenn ein einzelner Datensatz einige Validierungsregeln nicht erfüllt. In diesem Fall haben Sie Probleme beim Schreiben eines Feldbeschreibungsdatensatzes vom Typ Zeichenfolge für numerische Felder.

Ich bin jedoch keineswegs ein Experte, daher können Sie auf Fehler in meiner Theorie hinweisen.

Tyler Mumford
quelle
2
Aaand, ich habe gerade gelesen, dass Sie den Importvorgang nicht anpassen wollten. Tut mir leid. Hoffentlich findet das jemand nützlich.
Tyler Mumford
1
Guter Post. Ein weiterer Grund, warum ich Kommentare haben möchte, ist das Hinzufügen einiger Metadaten zur gesamten Datei. Das Hinzufügen einer ganzen Spalte oder Zeile nur für eine Zelle mit diesen Informationen ist etwas umständlich.
Ben Hershey
3

Eine durch Kommas getrennte Datei ist eigentlich nur eine Textdatei, in der die Zeilen aus durch Kommas getrennten Werten bestehen.

Es gibt keinen Standard, der den Inhalt einer CSV-Datei definiert, daher gibt es keine definierte Möglichkeit, einen Kommentar anzuzeigen. Dies hängt vom Programm ab, das die CSV-Datei importiert.

Natürlich ist dies normalerweise Excel. Sie sollten sich fragen, wie Excel einen Kommentar definiert. Mit anderen Worten, was würde Excel dazu bringen, eine Zeile (oder einen Teil einer Zeile) in der CSV-Datei zu ignorieren? Mir ist nichts bekannt, was dies tun würde.

Pavium
quelle
2
There is no standard which defines the contents of a CSV file Falsch.
Qix - MONICA wurde
5
@Qix - aus Abschnitt 2 des Dokuments, auf das verwiesen wird: "Obwohl es verschiedene Spezifikationen und Implementierungen für das CSV-Format gibt (z. B. [4], [5], [6] und [7]), gibt es in keine formale Spezifikation Existenz "
Alien Technology
3

Wenn Sie die Datei mit einem FOR-Befehl in einer Batchdatei analysieren, funktioniert ein Semikolon (;)

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!

AUSGABE:

2, parse this line, yes it should!

4, parse this line, yes it should!
Ken Bob Saxton
quelle
1
!! Bist du der echte Barfuß Ken Bob?
Geoffrey Hale
2

Wenn Sie etwas brauchen wie:

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

Ihre CSV kann die folgenden Zeilen enthalten:

"#My comment, something else"
1,2

Achten Sie genau auf die Anführungszeichen in der ersten Zeile.

Denken Sie beim Konvertieren Ihres Textes in Spalten mithilfe des Excel-Assistenten daran, die Option "Aufeinanderfolgende Trennzeichen als eins behandeln" zu aktivieren und "Anführungszeichen" als Trennzeichen zu verwenden.

Daher teilt Excel den Text in Kommas auf, wobei die Kommentarzeile als einspaltiger Wert beibehalten wird (und die Anführungszeichen entfernt werden).

Rogerio Granato
quelle