执行从文件读取的代码

时间:2013-11-01 23:30:04

标签: python python-2.7

我有这个必要性,我想知道是否可以实现:我想把我的python代码放在​​WebServer中。并且,只有在身份验证过程之后,正在执行我的脚本的用户才能读取我的WebServer中的文件并使用该内容作为脚本的一部分执行它。 Python中是否有任何函数可以将文件中的文本作为变量读取并执行该代码,就好像它是在脚本中编写的一样?

2 个答案:

答案 0 :(得分:3)

如果你解释为什么要这样做,我愿意打赌,这实际上不是解决问题的方式。

但同时:

execfile函数完全符合您的要求:它从文件中读取文本并以Python代码的形式执行。

如果您想先将文本读入变量,然后执行该变量中的代码,那么您需要的是exec语句。

您可能想要一个自定义导入程序,因此您可以从HTTP URL或存储的文本中import模块。或者,当然,您可以随时将文本写入您已添加到tempfile.NamedTemporaryFile的某个目录中的sys.path,然后通常import该模块,而无需任何自定义导入程序代码。有关所有血腥细节,请参阅Importing ModulesPEP 302。 (请注意,与自定义导入相关的所有内容在Python 3.3中比在2.7中容易100倍...至少因为您可以从The import system开始而不是分散在14个地方找到所有文档,其中大多数是C中的注释代码...)

答案 1 :(得分:0)

你的方法必须是一个非常糟糕的做法。但你可以这样做:exec 'print 1 + 2'