Seite 1 von 1

print abfangen.

Verfasst: Sonntag 14. November 2004, 17:50
von mitsuhiko
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.

Verfasst: Sonntag 14. November 2004, 17:59
von Milan
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()

Verfasst: Sonntag 14. November 2004, 18:19
von mitsuhiko
Danke für die schnelle Hilfe. Funktioniert genau so, wie ich wollte :D