newline in IDLE aber nicht in Linux command shell

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
peter99
User
Beiträge: 84
Registriert: Samstag 3. August 2013, 21:32

Ich bin an ein sehr komisches Problem gestossen und finde keine Loesung dazu.
Bisher bin ich meinen code immer ueber IDLE mit run Python shell gelaufen. Nun wollte ich ihn ueber die linux commandzeile laufen und alles klappt wunderbar, nur funktioniert die newlinecommand nicht mehr.
Ich verwende diese, da ich Informationen in ein file schreibe.
Executet ueber IDLE --> Run --> Python Shell: (of.write('\n'))
Das Programm printet mir brav die Zeilen.
Executet ueber linux shell: of.write('\n')
Programm printet mir keine Zeile.
Gesagt werden sollte noch, dass ich das eine Mal das Programm auf einem windows computer laufe, wohingegen das andere mal die linux shell ueber einen linuxserver executet.

Lg und vielen Dank im Vorraus,
Peter :K
peter99
User
Beiträge: 84
Registriert: Samstag 3. August 2013, 21:32

the strange thing is ('\t') works just fine
peter99
User
Beiträge: 84
Registriert: Samstag 3. August 2013, 21:32

es funktioniert mit ('\r\n') keine Ahnung wieso.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Weil unter Linux "\n" für Zeilenumbrüche verwendet wird und unter Windows "\r\n". Schau dir mal ``os.linesep`` an.
Das Leben ist wie ein Tennisball.
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Unterscheidet sich der Mac immer noch von den Rest oder hat man den Unix Standard übernommen?
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
BlackJack

@peter99: Die Beschreibung klingt sehr seltsam. `write()` ”printed” gar nichts. Die Frage ist also was hast Du wo geschrieben und vor allem wo und wie hast Du Dir das Ergebnis dann angeschaut‽ Unter Linux ergibt ein ``write('\n')`` nämlich durchaus ein Zeilenendezeichen, also in der Datei eine leere Zeile wenn davor nichts oder bereits ein Zeilenendezeichen steht.

@darktrym: MacOS X basiert auf BSD, ist also ein Unix.
Antworten