在Python脚本中执行另一个Python脚本

6 投票
7 回答
19892 浏览
提问于 2025-04-16 02:23

我有一个情况,我想在我的主Python脚本里动态生成一个Python脚本,把它存储为一个字符串,然后在需要的时候,从我的主脚本中执行这个动态生成的脚本。

这样做可能吗?如果可以的话,怎么做呢?

谢谢!

7 个回答

1

你可能想了解一下这个语句 exechttp://docs.python.org/release/2.5.2/ref/exec.html

15

如果你有一个脚本在文件里,就用exec来执行。

如果你的脚本是在字符串里,就用eval来执行。

!!! 但是 !!!

在使用从外部来源传入的字符串之前,一定要先检查一下它们的安全性!

否则,你就可能让别人有机会在你的程序里执行任意代码,所以一定要检查你的变量范围!

你绝对不想问这样的问题:

“请问,您真的给您的儿子起名叫Robert'); DROP TABLE students; -- 吗?”

如果你不明白这个例子,可以看看这个有趣的漫画……

http://xkcd.com/327/

但是当你使用EVAL时,你就要对你正在执行的指令负责。

撰写回答