Frage zu files

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Darii hat geschrieben:
Trundle hat geschrieben:Du sagst, du magst eine Textdatei haben (`w'). Und dann sagst du, du magst eine neue Zeile haben (`\n'). Dann ersetzt Python (bzw. eher die C-Lib) automatisch `\n' mit den für das Betriebssystem passenden Zeichen, wie sma bereits geschrieben hat. Und beim Auslesen werden diese wieder in `\n' umgewandelt, so dass du dir als Programmierer keine Gedanken über die Plattform machen musst. Meiner Meinung nach völlig akzeptabel, denn du hast explizit gesagt, dass du eine Text- und keine Binärdatei haben magst.
Das sollte man das aber irgendwo hinschreiben, ich habe das so nirgends explizit gelesen.
Die Doku verweist da auf die C-level fopen() Funktion. Da hast du recht, das ist nicht ganz optimal. Ich werde das ändern.
Und so intuitiv wie du das beschreibst ist das nicht. Ich habe mir ehrlich gesagt noch nie darüber Gedanken gemacht, was das jetzt konkret bedeutet wenn ich eine Datei als Textdatei öffne. Ich hatte aber zumindest erwartet, dass Python genau das an ASCII-Zeichen reinschreibt was ich ihm sage. Und "\n" war in meinen Augen keine neu Zeile, sondern ein einfaches Zeichen(chr(10)).
Da beschreibst du jetzt genau den Binärmodus. Für den ist \n ein Byte wie jedes andere.
Geschieht diese Umwandlung nur bei der Dateiausgabe oder auch irgendwo anders?
Nein, nur dort.
Abgesehen davon wäre es doch in den meisten Fällen auch egal, wenn Windows \n statt \r\n abbekäme. Das einzige Programm, das ich kenne und das darüber stolpert, ist der normale Editor.
Das konventionelle Zeilenende unter DOS/Windows ist nunmal \r\n.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

birkenfeld hat geschrieben:Die Doku verweist da auf die C-level fopen() Funktion. Da hast du recht, das ist nicht ganz optimal. Ich werde das ändern.
Das wäre toll. Auf den ganzen C-Manpages findet man das auch nicht so auf die Schnelle(ich es noch nicht gefunden :)).
Geschieht diese Umwandlung nur bei der Dateiausgabe oder auch irgendwo anders?
Nein, nur dort.
Dann bin ich ja beruhigt. ;)
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Gerold hat auch mal einen längeren Text zu Dateien und Konvertierung geschrieben.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

mkallas hat geschrieben:Gerold hat auch mal einen längeren Text zu Dateien und Konvertierung geschrieben.
Wovon es eine [wiki=Von_Umlauten%2C_Unicode_und_Encodings]verbesserte Fassung[/wiki] im Wiki gibt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten