Seite 1 von 1

Breaks von Textdateien übernehmen

Verfasst: Dienstag 10. Februar 2004, 13:55
von MacEvil
Hallo,

es werden alle Breaks in einem nicht von meinem TextEditor erstellen TextFile irgendwie ignoriert. Wenn ich aber mit meinem Programm eine Datei mit Breaks speichere und es wieder öffne funktioniert es.

Hab mal irgendwo gesehen es gibt "\ r" und "\ n".. ohne Whitespace

Verfasst: Dienstag 10. Februar 2004, 14:42
von Milan
Hi. Hast du Scripte zwischen den Plattformen ausgetauscht? Da musst dus chon beachten, dass es da verschiedene Zeileinsprünge gibt: unter win "\r\n", unter Linux "\n" und unter Mac nur "\r". Sowas musst du natürlich vorher konvertieren, da die sonst mit übernommen werden, aber auf einer anderen Plattform dann quasi ungültig sind :wink:

Verfasst: Dienstag 10. Februar 2004, 15:31
von Dookie
Hi MacEvil,

Python2.3 bietet auch Universal Newline Support. Das heisst, \n, \r\n und \r werden wenn eine Datei mit dem Modus U geöffnet wird beim lesen wie ein einfaches \n behandelt.
Bei einem guten Texteditor, kannst Du auch einstellen welchen Zeilenumbruch er verwendet.


Gruß

Dookie

Verfasst: Dienstag 10. Februar 2004, 17:00
von MacEvil
@ Milan,

nein, immer unter MacOSX. Wobei das ja Mac und Unix ist.

@ Dookie,

Super, funkt prima :D

Verfasst: Dienstag 10. Februar 2004, 17:23
von Milan
Ich kenn mich mit Mac Systemen allgemein nicht aus... nur so aus Neugier: verwendet MacOSX nun als Mischling zwei unterschiedliche Linesep's ? Oder liegt die Ursache davon vielleicht doch woanders?

Ansonsten hättest du bei früheren Pythonversionen auch etwas Arbeitsspeicherlastiger vergehen können:

Code: Alles auswählen

text=open('datei.txt','rb').read()
text=text.replace('\r\n','\n').replace('\r','\n')
Dann hättest du die ganze Datei in text und kannst sie so bearbeiten. Wenn man sie dann zeilenweise haben will, macht man einfach text.split('\n').

Milan

Verfasst: Dienstag 10. Februar 2004, 19:57
von MacEvil
Ne, ich glaub Mac OSX hat r+n.. aber wahrscheinlich ist es ein Fehler des Text Widgets (Tkinter), denn sonst hatte ich noch nie Probleme damit