将字符串作为命令执行

Execute a string as a command

有没有办法获取字符串并将其用作 Python 中的命令?

类似于下面显示的示例。

x = "import time"

x

time.sleep(1)

我知道上面的例子行不通,那只是为了帮助你理解我正在尝试做的事情。

危险但强大的exec()eval()就是你要找的:

What does Python's eval() do?

Running Python code contained in a string

使用exec()(它是Python 3.x中的一个函数,但是2.x中的一个语句)来计算语句,所以:

exec('print(5)')           # prints 5.

eval() 计算表达式:

x=5                        #prints 5
eval('x+1')                #prints 6

可以使用evaleval()用于计算表达式,如果要执行语句,使用exec()

参见 eval 的示例:

def fun():
    print "in fun"

eval("fun()")

x="fun()"
eval(x)

参见 exec 的示例。

exec("print 'hi'")