How to exec() a string like interactive python does?

News123 news1234 at
Wed Jun 6 00:12:00 CEST 2012

If I start Python in interactive mode,
and I yype the commands,
'a=3', 'a', 'print a'

Then the  output would look like:
 >>> a = 3
 >>> a
 >>>  print a

Now within an application I'd like to achieve exactly this behaviour
Meaning, that
- for assignments nothing is displayed
- for expressions the result of the exprission displayed
- and statements like print statements would be executed

The only thing, that I came up with is following code and that would
even print out results for 'a=3', where the normal interactive python 
would not echo any result.

for cmd in [ 'a=3', 'a', 'print a' ] :
         print('>>> ' + cmd)
         exec('__rslt = ' + cmd)
         if __rslt is not None:
             print repr(__rslt)
     except SyntaxError:

The result would look like:
 >>> a=3
 >>> a
 >>> print a

Is There anything better?

More information about the Python-list mailing list