在python脚本中执行python脚本

时间:2010-08-05 19:20:59

标签: python

我有一个场景,我想动态生成一个python脚本 - 在我的主python脚本中 - 将其存储为字符串,然后在需要时,从我的主脚本执行这个动态生成的脚本。

这是可能的,如果是这样的话怎么样?

感谢

6 个答案:

答案 0 :(得分:12)

对于文件中的脚本,请使用exec

对于字符串中的脚本,请使用eval

!!! !!!

在使用从外部源传入的字符串之前,完整性检查它们! 否则,您将公开执行任意代码的能力 在你的程序中, 所以范围检查您的变量!

你永远不想问这个问题:

“对不起,妈妈,你真的为你的儿子罗伯特命名吗?”; DROP TABLE学生; - “?

如果您不理解参考文献 - 请参阅此快速漫画......

http://xkcd.com/327/

但是当你评价时 - 你要对你正在评估的指示负全部责任。

答案 1 :(得分:6)

答案 2 :(得分:1)

答案 3 :(得分:1)

如果要在主脚本的上下文中执行脚本,可能需要检查eval [http://docs.python.org/py3k/library/functions.html#eval]

答案 4 :(得分:0)

不确定这是多么明智,但如果你需要执行Python代码,那么你使用的exec函数不是吗?

答案 5 :(得分:0)

您尝试做的事情优先。 collections.namedtuple函数构建一个模板字符串,该字符串传递给exec以构建动态定义的类。