On Thu, Mar 16, 2000 at 07:14:57AM +0000, Wilson Fletcher wrote:
> 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.
>> I'm fairly new to python and the best I can come up with is:
>> # Assume the statement is stored in a dictionary with the key "code".
>> from os import popen
>> cmdDict['code'] = "print 'Hello World'"
>> line = popen( "python -c "+`cmdDict['code']` ).readline()
> process( line )
>> Any gurus out there have better suggestions ?
>> thanks,
> Wilson Fletcher
Usual solution is 'eval' for expression and 'exec' for statement (see
online doc for details). To capture all output to <stdout>, you can
point 'sys.stdout' to some file, and later restore it to the default
'sys.__stdout__'.
--William