sys.stdout in datei?!

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
eyescube
User
Beiträge: 56
Registriert: Mittwoch 6. April 2011, 06:58

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 =/
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

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"
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
Zuletzt geändert von cofi am Dienstag 19. April 2011, 07:39, insgesamt 1-mal geändert.
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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.
eyescube
User
Beiträge: 56
Registriert: Mittwoch 6. April 2011, 06:58

ah cool okay dachte das buch von galileo-verlag is gut hm :/
Antworten