print abfangen.

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
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Gibt es eine Möglichkeit jedes Print an eine Variable anzuhängen?
Sozusagen sowas:

Code: Alles auswählen

print "Das ist ein Test" --> content += "Das ist ein Test\n"
Hab schon nach sowas gesucht, aber irgendwie find ich nichts.
TUFKAB – the user formerly known as blackbird
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Du kannst die print ausgaben in eine Datei oder ein file-like-object umleiten, indem du entweder sys.stdout redefinierst oder print sagst, wohin geschrieben werden soll:

Code: Alles auswählen

import cStringIO,sys
filelikeobj=cStringIO.StringIO()
#1.Variante:
old_stdout,sys.stdout=sys.stdout,filelikeobj
print "Das ist ein Test"
...
sys.stdout=old_stdout
print filelikeobj.getvalue()
#2. Variante:
print >> filelikeobj, "Das ist ein Test"
print filelikeobj.getvalue()
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Danke für die schnelle Hilfe. Funktioniert genau so, wie ich wollte :D
TUFKAB – the user formerly known as blackbird
Antworten