关于python:执行字符串作为命令

Execute a string as a command

本问题已经有最佳答案,请猛点这里访问。

有没有一种方法可以获取一个字符串并将其用作Python中的命令?

类似于下面的例子的东西。

1
2
3
4
5
x ="import time"

x

time.sleep(1)

我知道上面的例子行不通,那只是为了帮助你理解我在做什么。


危险但强大的exec()eval()正是你想要的:

python的eval()做什么?

运行字符串中包含的python代码

使用exec()(它在python 3.x中是一个函数,但在2.x中是一个语句)来计算语句,因此:

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

eval()计算表达式:

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


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

eval示例:

1
2
3
4
5
6
7
def fun():
    print"in fun"

eval("fun()")

x="fun()"
eval(x)

参见exec的示例。

1
exec("print 'hi'")