Seite 1 von 1

sys.stdout in datei?!

Verfasst: Dienstag 19. April 2011, 07:32
von eyescube
hallo,
ich hab irgendwie ein kleines Verständnis-Problem
ich möcht print in Datei die Variable die drin steht sind Pfade enn ich print fullpath ausgeb passts auch
nun hab ich n Versuch gestartet nämlich so:
temp=sys.stdout
sys.stdout=open("log.txt","a")
print >> fullpath
jetz bekomm ich folgenden Fehler

Code: Alles auswählen

     str object has not an attribute "write"[\code]
aber 
ich hab in galileo-book das so gelesen =/

Re: sys.stdout in datei?!

Verfasst: Dienstag 19. April 2011, 07:35
von Dauerbaustelle
Galileobuch erstmal ganz schnell zur Seite werfen. Das ist total grottig.

Die Syntax, die du suchst, ist

Code: Alles auswählen

print >> file, data
, z.B.

Code: Alles auswählen

print >> sys.stderr, "Hallo"

Re: sys.stdout in datei?!

Verfasst: Dienstag 19. April 2011, 07:35
von cofi
Entweder du aenderst `sys.stdout` (und setzt es wieder zurueck) oder du verwendest du `>>` Syntax. Das passt nicht zusammen.
In beiden Faellen braucht man aber ein `file-like'-Objekt und keinen String.

Re: sys.stdout in datei?!

Verfasst: Dienstag 19. April 2011, 07:38
von snafu
Dann hat das Galileo-Buch Mist erzählt. Die von dir gezeigte Form ist (man lese die Fehlermeldung) nur auf Objekte mit einer ``write()``-Methode anwendbar. Objekte vom Typ ``str()`` gehören nicht dazu. Anders gesagt: Das Ganze funktioniert nur mit ``file()``-Objekten oder Klassen, die ein ähnliches Interface anbieten.

Re: sys.stdout in datei?!

Verfasst: Dienstag 19. April 2011, 07:39
von eyescube
ah cool okay dachte das buch von galileo-verlag is gut hm :/