Als ich versuchte herauszufinden, wie man CSVs auf einem spanischen PC (eines Kunden) zum korrekten Öffnen in Excel bringt, fand ich sep=,
oben in der Datei viele Antworten mit den Empfehlungen :
- Der einfachste Weg, CSV mit Kommas in Excel zu öffnen
- So steuern Sie den CSV-Import in Excel 2010
- Wie man durch Semikolon getrennte CSV-Dateien in der US-Version von Excel öffnet
- Leerzeichen oder Tabulatoren als Trennzeichen in CSV
- Wie kann Excel dazu gebracht werden, das Komma als Standardtrennzeichen in CSV-Dateien zu interpretieren?
Auf den ersten Blick funktioniert dieser Ansatz, aber keine dieser Antworten gibt weitere Informationen darüber, woher diese Metadatenoption stammt. Ich habe versucht zu suchen, was es bedeutet (und habe daher all diese Antworten gefunden), konnte aber keine weiteren Informationen erhalten, insbesondere da die Suche nach Interpunktionszeichen notorisch schwierig ist.
Mein Hauptanliegen ist, ob dies eine Excel-spezifische Funktion ist . Ich vermute es ist aber habe nichts definitives gefunden um es zu bestätigen.
Einige verwandte Fragen sind:
- Welche Zeichen können in dieser Einstellung verwendet werden?
- Welche anderen Einstellungen sind verfügbar (z. B. Zeilenabschlusszeichen, Anführungszeichen usw.).
- Gibt es andere Tools, die diese Funktion offiziell unterstützen?
Ich hoffe, es gibt irgendwo eine Dokumentation, auf die mich jemand hinweisen kann, um all diese Fragen und mehr zu beantworten. Ich konnte es einfach nicht finden.
Einige Klarstellungen:
Das sep=
ist kein Parameter für einen Parser. Es soll innerhalb der CSV platziert werden. Beispiel:
sep=|
"LETTER"|"ANIMAL"
"a"|"aardvark"
"b"|"bear"
"c"|"cow"
quelle
Antworten:
RFC 4180 wird allgemein als Standard für das CSV-Format anerkannt und erwähnt keine solche Funktion.
Das W3C- Modell für tabellarische Daten und Metadaten im Web erwähnt es als eine Funktion, die nicht in ihrem Geltungsbereich liegt:
Obwohl ich keinen direkten Beweis dafür gefunden habe, dass diese Funktion Excel-spezifisch ist, ist dies anscheinend immer noch der Fall, da es anscheinend kein Standardisierungsdokument gibt, das diese Funktion abdeckt.
quelle
Beitrag zur Beantwortung einer Ihrer Fragen: "Gibt es andere Tools, die diese Funktion offiziell unterstützen?"
Dies wird von Apple Numbers nicht unterstützt (ich habe Numbers Version 3.6.2 getestet).
Es wird auch nicht von csv2json ( https://www.npmjs.com/package/csv2json ) oder csvtojson ( https://www.npmjs.com/package/csvtojson ) unterstützt.
quelle
Der Befehl sep = wird in allen Ländern verwendet, in denen Komma als Dezimaltrennzeichen verwendet wird, wie in Italien. Da beim Export von CSV-Dateien in Excel in diesen Ländern Semikolons anstelle von Kommas verwendet werden, müssen Sie sicherstellen, dass die Datei in den USA oder in anderen Ländern gelesen werden kann
sep =;
oben auf der Datei. Dies ist Excel-spezifisch und wird möglicherweise von anderen Anwendungen ignoriert.
quelle
Nahezu jedes Tool, das aus CSV-Dateien importiert, erkennt, dass nicht nur Kommas als Trennzeichen verwendet werden können. Tabulatoren sind beispielsweise seit langer Zeit üblich. Ich denke, dies geht sogar auf die Zeit der Lochkarten zurück, in der es ein Zeichen geben muss, das als Ende des Datenfelds erkannt wird - mit Ausnahme von Systemen, die Felder mit fester Breite oder Felder mit vorangestellter Länge verwenden, hat fast jedes System dies nötig seit dem Aufkommen der Computer.
Die 3 wichtigsten Elemente sind ein Feldtrennzeichen, ein Datensatztrennzeichen und ein Datenende-Marker. Csv verwendet standardmäßig Komma, Zeilenvorschub und Dateiende für diese Elemente. Sie können jedoch nahezu jede gültige Eingabe verwenden. Sie benötigen jedoch einen Mechanismus um den speziellen Markierungen zu entgehen, wenn sie in Ihren gültigen Daten vorkommen.
Ein historisches System, auf das ich gestoßen bin, verwendete Newline für das Feldende, 2 Leerzeilen für das Ende der Aufzeichnung und
*!*!* END *!*!*
für das Ende der Daten. Ich bin allgemein auf alle gestoßen,,\t|:
die als Feldtrennzeichen zusammen mit verschiedenen Steuerzeichen verwendet wurden.Eine Sache, vor der man aufpassen muss, ist, dass die Franzosen und andere das Komma als Dezimalpunkt verwenden - dies kann jede Menge Spaß und Spiel verursachen. Es gibt einen Standardisierungsgrad für CSV-Dateien in RFC4180, aber manchmal müssen Sie Dateien manuell bearbeiten, wenn Sie aus einem Programm exportieren und in ein anderes importieren.
Um den zweiten Teil Ihrer Frage zu beantworten, enthält Python beispielsweise einen CSV-Reader / Writer als eine der Standardbibliotheken, die die folgenden Optionen bietet:
delimiter
- Dies ist das Feldtrennzeichen (es sei denn , es ist ein Escapezeichen).doublequote
- Wenn true, wird ein"
innerhalb eines Feldes als dargestellt""
escapechar
- Entfernt eine spezielle Bedeutung von einem folgenden Zeichen, z. B. wenn es auf gesetzt ist,\
kann das Zitat als dargestellt werden\"
lineterminator
- in der Regel eines von\n
,\r
,\r\n
oder\n\r
quotechar
- Zeichen, mit dem Zeichenketten in der Regel"
oder in Anführungszeichen gesetzt werden'
quoting
- Flagge als einer von:ALL
- Jedes Feld ist in Anführungszeichen, dh:"1","Free Beer","ASAP"
MINIMAL
- Nur Anführungszeichenfelder mit Sonderzeichen, dh:1,"Beer, (Free)", Now, Please
QUOTE_NONNUMERIC
- Zitiere alles, was keine Zahl ist, dh:1,"Beer, (Free)", "Now", "Please"
NONE
- Zitieren Sie stattdessen nicht Flucht, dh:1,Beer\, (Free), Now, Please
skipinitialspace
- Überspringen Sie alle führenden Leerzeichen der einzelnen Felder, damit Sie sie,
nicht nur,
als Feldtrennzeichen verwenden können.Je flexibler und durchdachter ein Tool ist, das CSV-Dateien importieren kann, desto mehr dieser Optionen (möglicherweise mit unterschiedlichen Namen und / oder Mechanismen) sind verfügbar.
quelle
sep=
ist kein Parameter für einen Parser. Ich habe meine Frage etwas präzisiert.sep=
ist und woher es kommt.