Assigning output from a simple python statement
Michael Hudson
mwh21 at cam.ac.uk
Thu Mar 16 04:56:58 EST 2000
"Wilson Fletcher" <wilson at mclachlan.com.au> writes:
> I would like to execute an unknown python statement and store the output.
>
> It will typically be a print statement. eg. "print 'Hello World'"
>
> I won't know the statement until runtime becuase it will come from a
> database. BUT I want to capture anything that goes to stdout and process
> it.
try this:
import sys,StringIO
def capture_output(code):
so = sys.stdout
sio = StringIO.StringIO()
sys.stdout = sio
try:
exec code
finally:
sys.stdout = so
sio.seek(0)
return sio.read()
not tested, but should work.
I leave out my usual "do you really want to `exec' things you don't
know everything about" comment, I think.
Cheers,
M.
--
very few people approach me in real life and insist on proving they are
drooling idiots. -- Erik Naggum, comp.lang.lisp
More information about the Python-list
mailing list