Zum Inhalt springen

CSV (Dateiformat)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 12. Juni 2007 um 12:40 Uhr durch 212.185.81.134 (Diskussion) (Besonderheiten: Anmerkung zu RFC 4180 und unterschiedlichen Spaltenanzahlen.). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Eine CSV-Datei ist eine Textdatei zur Speicherung oder zum Austausch einfach strukturierter Daten. Das Kürzel CSV steht dabei für Character Separated Values, Comma Separated Values oder Colon Separated Values, weil die einzelnen Werte durch ein spezielles Trennzeichen, beispielsweise das Komma oder Semikolon, getrennt werden. Ein allgemeiner Standard für das Dateiformat existiert nicht.

In CSV-Dateien können Tabellen oder eine Liste unterschiedlich langer Listen abgebildet werden. Kompliziertere, beispielsweise geschachtelte Datenstrukturen können durch zusätzliche Regeln oder in verketteten CSV-Dateien gespeichert werden. Um sie in einer Datei abzuspeichern, eignen sich jedoch andere Formate wie XML besser.

Als Trennzeichen sind neben Komma auch Semikolon, Doppelpunkt, Tabulator (TSV-Datei) und andere Zeichen üblich.

Einzelne Datensätze werden in der Regel durch einen Zeilenumbruch (bei Windows: CR LF = carriage return, line feed; bei Unix: nur LF; bei Mac OS: nur CR) getrennt.

Besonderheiten

  • Das Trennzeichen selbst und der Zeilenumbruch sollte nicht in den Datenelementen vorkommen. Um die Eindeutigkeit zu gewährleisten, muss es im Datenelement besonders gekennzeichnet werden, beispielsweise durch
    • Voranstellen eines Markierungszeichens wie "\"
    • Setzen von Anführungszeichen um das Datenelement. Ist ein Anführungszeichen selbst Teil des Datenelements, so wird es verdoppelt.
    • Anderweitige Kodierung wie bei Sonderzeichen
  • Die erste Zeile ist oft noch kein Datensatz, sondern enthält die Spaltennamen der Tabelle.
  • Unter Windows sind die Dateiendungen .txt und .csv üblich.
  • Jede Zeile sollte lautf RFC 4180, Absatz 2, Punkt 4 die gleiche Anzahl Spalten enthalten - dies wird aber nicht immer eingehalten.

Fallstricke

Neben dem genannten Problem des Feldtrennzeichens in Datenelementen gibt es beim Datenaustausch über Textdateien häufig Schwierigkeiten mit der Kodierung von Zeichen, die nicht Teil des ASCII-Zeichensatzes sind, beispielsweise Umlaute. Es muss daher sichergestellt sein, dass

  1. in der CSV-Datei eine Kodierung verwendet wird, die alle Zeichen enthält und
  2. im Zielsystem alle enthaltenen Zeichen zulässig sind.

Eine weitere Fehlerquelle sind Datenformate innerhalb der Felder, beispielsweise

  • bei Zahlen die Trennzeichen für Tausender- und Dezimalstellen
  • Datumsformate

Die Konvertierung einer CSV-Datei oder das Ersetzen von Zeichen kann mit jedem guten Texteditor erfolgen.

Anwendungen

Beispiel

Die CSV-Datei mit dem Trennzeichen ";"

Stunde;Montag;Dienstag;Mittwoch;Donnerstag;Freitag
1;Mathe;Deutsch;Englisch;Mathe;Kunst
2;Sport;Französisch;Geschichte;Sport;Geschichte
3;Sport;"Religion ev;kath";Kunst;Deutsch;Kunst

repräsentiert diese Tabelle:

Stunde Montag Dienstag Mittwoch Donnerstag Freitag
1 Mathe Deutsch Englisch Mathe Kunst
2 Sport Französisch Geschichte Sport Geschichte
3 Sport Religion ev;kath Kunst Deutsch Kunst

In diesem Beispiel werden die Anführungszeichen verwendet, um das Semikolon zwischen ev und kath in der letzten Zeile als Text zu kennzeichnen. Das 3. Element dieser Zeile lautet also Religion ev;kath.


Weitere Beispiele für CSV-Dateien

  • Die Passwortdatei "/etc/passwd" der UNIX-Benutzerverwaltung ist eine CSV-Datei mit dem Trennzeichen ":".
  • RFC 4180RFC zur Spezifikation eines CSV-Standards.