Hallo *, ich spiele gerade mit dem Newline-Support in Python unter Windows etwas rum. Schreibe ich die test.txt Datei mit dem Mini-Script unten und schaue mir das Ergebnis im Hex-Editor an, sehe ich, das alle \n in der Datei als \r\n in die Datei geschrieben wurden. Liest man die Datei wieder mit "r" ein, wird diese Umwandlung in umgekehrter Richtung gemacht, aus jedem \r\n in der Datei wird im String wieder EIN \n. Deshalb werden auch 3 Zeilen eingelesen, Zeile 3+4 rutschen zusammen (sind unter Win ja auch keine 2 Zeilen, \r ist ja kein Newline). Ausgabe des Skriptes siehe unten. Liest man die Datei nun aber mit "rU" ein, werden wie eben auch die \r\n zu einem \n zusammengefasst, aber zusätzlich wird auch noch das allein stehende \r in eine \n umgewandelt. Zeile 3 und 4 werden jetzt also nicht mehr zusammengefügt, aber Zeile 1 und 4 erhalten jeweils noch eine Leerzeile angefügt. Mich würde mal interessieren, was wie das in Unix abläuft und wie das Ergebnis aussieht? Falls das jemand ausprobieren könnte? Danke! #!/usr/bin/python # -*- coding: Latin-1 -*- # Test CR,NL und Universal-Newline-Support of = open("test.txt", "w") of.write("Z 1 \\r\\n \r\n") of.write("Z 2 \\n \n") of.write("Z 3 \\r \r") of.write("Z 4 \\r\\n \r\n") of.close() of = open("test.txt", "r") x = of.readlines() print 'Open mit "r":', len(x), x of.close() of = open("test.txt", "rU") x = of.readlines() print 'Open mit "rU":', len(x), x of.close() Ausgabe: Open mit "r": 3 ['Z 1 \\r\\n \r\n', 'Z 2 \\n \n', 'Z 3 \\r \rZ 4 \\r\\n \r\n'] Open mit "rU": 6 ['Z 1 \\r\\n \n', '\n', 'Z 2 \\n \n', 'Z 3 \\r \n', 'Z 4 \\r\\n \n', '\n'] Freundliche Grüße Klaus Meyer _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
kgm wrote:
Mich würde mal interessieren, was wie das in Unix abläuft und wie das Ergebnis aussieht? Falls das jemand ausprobieren könnte? Danke!
Open mit "r": 3 ['Z 1 \\r\\n \r\n', 'Z 2 \\n \n', 'Z 3 \\r \rZ 4 \\r\\n \r\n'] Open mit "rU": 4 ['Z 1 \\r\\n \n', 'Z 2 \\n \n', 'Z 3 \\r \n', 'Z 4 \\r\\n \n'] _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (2)
-
kgm -
Mike Abel