Universal newline support in Rubin, umfasst \r (CR) line endings

In eine Rails-app, die ich bin zu akzeptieren und zu Parsen von CSV-Dateien, die kommen können formatiert mit jedem der drei möglichen Beendigung der Zeile-Zeichen: \n (LF), \r\n (CR+LF), oder \r (CR). Ruby ' s File und CSV Bibliotheken scheinen mit den ersten zwei Fällen ganz gut, aber der Letzte Fall ("Mac classic" \r Zeilenenden) nicht behandelt, wie ein Zeilenumbruch. Es ist wichtig, zu verstehen, zu akzeptieren, dieses format so gut wie die anderen, da Microsoft Excel für Mac (unter OS X) scheint es zu benutzen, beim exportieren in ein "Comma Separated Values" (obwohl exportieren "Windows-Komma-Getrennt" produziert, die leichter zu handhabende \r\n).

Python hat "universal newline support" und mit jedem dieser drei Formate ohne Probleme. Gibt es etwas ähnliches in Ruby wird akzeptieren, dass alle drei, ohne zu wissen, das format im Voraus?

  • Nein, Ruby tut dies nicht. Es erkennt die OS, und auf dieser Grundlage davon ausgegangen, das richtige line-endings. Der alte Macintosh - \r ist nicht gesehen in der aktuellen Ausgabe, da die Mac-verschoben auf Mac OS X, die verwendet, *nix \n. Zeigen Sie uns, wie Sie öffnen Sie Ihre CSV-Dateien, und wir können wahrscheinlich zeigen Ihnen einige tricks, um alle die erwähnten line-endings mit einem kleinen kniff.
  • Das problem ist, dass Sie bekommen konnte, ein old-school-MacOS CSV-Datei mit \r EOLs, wenn Sie arbeiten auf Linux, erwartet wird \n EOLs. Also die Datei und das OS wird nicht unbedingt Zustimmen, was die CSV-Datensatz-Trennzeichen werden sollte.
InformationsquelleAutor jrdioko | 2013-09-23
Schreibe einen Kommentar