在Python脚本中执行另一个Python脚本
我有一个情况,我想在我的主Python脚本里动态生成一个Python脚本,把它存储为一个字符串,然后在需要的时候,从我的主脚本中执行这个动态生成的脚本。
这样做可能吗?如果可以的话,怎么做呢?
谢谢!
7 个回答
1
你可能想了解一下这个语句 exec
:http://docs.python.org/release/2.5.2/ref/exec.html
15
如果你有一个脚本在文件里,就用exec来执行。
如果你的脚本是在字符串里,就用eval来执行。
!!! 但是 !!!
在使用从外部来源传入的字符串之前,一定要先检查一下它们的安全性!
否则,你就可能让别人有机会在你的程序里执行任意代码,所以一定要检查你的变量范围!
你绝对不想问这样的问题:
“请问,您真的给您的儿子起名叫Robert'); DROP TABLE students; -- 吗?”
如果你不明白这个例子,可以看看这个有趣的漫画……
但是当你使用EVAL时,你就要对你正在执行的指令负责。
7
了解一下 execfile()
这个函数。
http://docs.python.org/library/functions.html?highlight=exec#execfile