Python erhält das richtige Zeilenende

78

Gibt es eine einfache Möglichkeit, den vom aktuellen Betriebssystem verwendeten Zeilentyp zu ermitteln?

Evan Fosmark
quelle

Antworten:

116

Wenn Sie eine Datei bearbeiten, die Sie im Textmodus geöffnet haben, werden alle Zeilenumbrüche korrekt als ' \n' angezeigt. Ansonsten suchen Sie os.linesep.

Von http://docs.python.org/library/os.html :

os. linesep

Die Zeichenfolge, die zum Trennen (oder vielmehr zum Beenden) von Zeilen auf der aktuellen Plattform verwendet wird. Dies kann ein einzelnes Zeichen sein, z. B. '\ n' für POSIX, oder mehrere Zeichen, z. B. '\ r \ n' für Windows. Verwenden Sie os.linesep nicht als Zeilenabschluss, wenn Sie Dateien schreiben, die im Textmodus geöffnet wurden (Standardeinstellung). Verwenden Sie stattdessen auf allen Plattformen ein einzelnes '\ n'.

dF.
quelle
Wenn Sie mit "Textmodus" meinen, meinen Sie im Allgemeinen mit nicht-binärem Modus?
theX
20

Oh, ich habe es herausgefunden. Anscheinend gibt PEP-278 Folgendes an:

Jede Zeile, die in der Eingabedatei endet, wird in Python als '\ n' angezeigt, sodass nur wenig anderer Code geändert werden muss, um universelle Zeilenumbrüche zu verarbeiten.

Evan Fosmark
quelle
7

Wenn Test angeben bzw. Wenn Sie Dateien ordnungsgemäß öffnen und universelle Zeilenumbrüche verwenden, sollten Sie sich die meiste Zeit keine Gedanken über andere Zeilenumbrüche machen müssen.

Aber wenn Sie müssen, verwenden Sie os.linesep

oefe
quelle
0

os.linesep ist wichtig, da es (wie der Name schon sagt :)) vom Betriebssystem abhängt.

Unter Windows ist es beispielsweise nicht "\ n", sondern "\ r \ n".

Wenn Sie sich jedoch nicht für plattformübergreifende Inhalte interessieren, können Sie einfach '\ n' verwenden.

Vlad K.
quelle