Seite 1 von 1

writelines ändert LF in CRLF

Verfasst: Mittwoch 5. Januar 2011, 10:43
von Lebostein
Beim Speichern einer Liste mit Strings (Python unter Windows) wird aus dem [LF] = \n ein [CR][LF]. Es werden also 2 Bytes pro Zeilenumbruch gespeichert. Wie sage ich Python, dass er stets nur das [LF] in die Datei schreiben soll (also eine Textdatei für UNIX)?

Code: Alles auswählen

liste = ['a\n', 'b\n', 'c\n']
file = open('test.txt', 'w')
file.writelines(liste)
file.close()
In HEX:

Ergebnis: 61 0D 0A 62 0D 0A 63 0D 0A
Erwartet: 61 0A 62 0A 63 0A

Re: writelines ändert LF in CRLF

Verfasst: Mittwoch 5. Januar 2011, 10:57
von birkenfeld
Dazu solltest du die Datei im Binärmodus und nicht im Textmodus öffnen:

Code: Alles auswählen

open('test.txt', 'wb')