it-swarm.com.de

Kann eine CSV-Datei einen Kommentar haben?

Gibt es eine offizielle Möglichkeit, einer CSV-formatierten Datei das Zulassen von Kommentaren in einer eigenen Zeile zu erlauben? OR am Ende einer Zeile?

Ich habe versucht, wikipedia auf dieser und auch RFC 418 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 eine separate ReadMe.txt-Datei verwenden, um die Datei zu erklären.

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?

184
Pure.Krome

Der CSV- "Standard" (wie er ist) schreibt nicht vor, wie Kommentare behandelt werden sollen. Nein, es liegt an der Anwendung, eine Konvention festzulegen und dabei zu bleiben.

107
skaffman

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

Das am besten zu verwaltende Element (wenn CSV in eine bestimmte Anwendung wie Excel importiert wird) ist die Definition einer speziellen Methode zum Kennzeichnen von Kommentaren, die von Excel ignoriert werden. In Excel können Sie den Kommentar (bis zu einem gewissen Grad) "verbergen", 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 Zahl 0 angezeigt wird, aber der Kommentar ist ausgeblendet.

Alternativ können Sie den Text ausblenden, indem Sie ihn einfach mit Leerzeichen ausfü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 Texts verbirgt, die nicht in die Zelle passen.

Böse Hacks, die nur mit Excel funktionieren, aber möglicherweise ausreichen, um Ihre Ausgabe nach dem Import ein wenig aufgeräumter aussehen zu lassen.

27
Jason Williams

In technischen Daten ist es üblich, das # Symbol in der ersten Spalte zur Kennzeichnung eines Kommentars.

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

26
Pedro_Uno

Ich denke, die beste Möglichkeit, Kommentare zu einer CSV-Datei hinzuzufügen, besteht darin, ein Feld "Kommentare" hinzuzufügen oder direkt in die Daten aufzunehmen.

Die meisten CSV-Parsing-Anwendungen, die ich verwendet habe, implementieren sowohl Feldzuordnung als auch Datensatzauswahl. Um also 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 (eigentlich alle Datensätze), nur für Kommentare.

Dies sind die beiden einzigen Gründe, warum ich mir vorstellen kann, eine CSV-Datei zu kommentieren. Das einzige Problem, das ich vorhersehen kann, sind Programme, die die Datei überhaupt nicht 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 kein Experte, daher kann ich auf Fehler in meiner Theorie hinweisen.

6
Tyler Wayne

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 anzugeben. Dies hängt vom Programm ab, mit dem die CSV-Datei importiert wird.

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

3
pavium

Wenn Sie die Datei mit einem FOR-Befehl in einer Batch-Datei 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!
3
Ken Bob Saxton

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 Texts in Spalten mit dem Excel-Assistenten daran, das Kontrollkästchen "Aufeinanderfolgende Trennzeichen als ein Trennzeichen behandeln" zu aktivieren und "Anführungszeichen" als Trennzeichen festzulegen.

Daher teilt Excel den Text an den Kommas auf, wobei die Kommentarzeile als ein einziger Spaltenwert beibehalten wird (und die Anführungszeichen entfernt werden).

2
Rogerio Granato