Exec Multiple Lines?
Peter Otten
__peter__ at web.de
Sat Jun 12 04:01:31 EDT 2004
Chris S. wrote:
> I'd like to dynamically execute multiple lines of indented code from
> within a script, but I can't seem to find a suitable function. Exec only
> works with unindented code, and execfile only works with files. I
> suppose I could write my string to a temporary file and then use
> execfile, but that seems like a hack. Is there an easier way? Any help
> is appreciated.
Either dedent or trick Python into expecting indented code:
>>> s = """
... print "and I say hello"
... print "hello, hello"
... """
>>> exec s
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<string>", line 2
print "and I say hello"
^
SyntaxError: invalid syntax
>>> exec "if 1:\n%s" % s
and I say hello
hello, hello
>>>
Peter
More information about the Python-list
mailing list