How to exec() a string like interactive python does?
- From: News123 <news1234@xxxxxxx>
- Date: Wed, 06 Jun 2012 00:12:00 +0200
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
3
>>> print a
3
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' ] :
try:
print('>>> ' + cmd)
exec('__rslt = ' + cmd)
if __rslt is not None:
print repr(__rslt)
except SyntaxError:
exec(cmd)
The result would look like:
>>> a=3
3
>>> a
3
>>> print a
3
>>>
Is There anything better?
.
- Follow-Ups:
- Re: How to exec() a string like interactive python does?
- From: News123
- Re: How to exec() a string like interactive python does?
- From: Steven D'Aprano
- Re: How to exec() a string like interactive python does?
- Prev by Date: Re: Help needed with nested parsing of file into objects
- Next by Date: Re: How to exec() a string like interactive python does?
- Previous by thread: English version for Mémento Python 3 (draft, readers needed)
- Next by thread: Re: How to exec() a string like interactive python does?
- Index(es):
Relevant Pages
|