1

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

4

2 回答 2

3

如果您解释为什么要这样做,我敢打赌这实际上不是您应该解决问题的方式。

但与此同时:

execfile函数完全符合您的要求:它从文件中读取文本并将其作为 Python 代码执行。

如果你想先将文本读入一个变量,然后执行那个变量中的代码,你想要的就是exec语句。

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

于 2013-11-01T23:35:49.840 回答
0

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

于 2013-11-01T23:35:22.647 回答