Python erhält das richtige Zeilenende


78

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

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'.


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.


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


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.