python - 将代码写入文件,然后执行

标签 python python-3.x

我有一个 Python 脚本,它导入与模块相同的目录中的现有文件。写入文件,然后使用导入来执行它与 exec() 有何不同?安全吗?
这是一个例子来说明我正在谈论的内容:

import example
examplefile = open("example.py", "w")
exampletext = "def examplefunction():\n\tprint('This is an example!')\n\treturn"
examplefile.write(exampletext)
examplefile.close()
example.examplefunction()

最佳答案

不,它并不比使用 exec() 更安全。导入和 exec() 都将文本编译为字节码,然后执行字节码。生成的字节码将完全相同。

唯一的区别是可以为磁盘上的文件创建 .pyc 字节码缓存文件,而 exec() 将重新编译每个文本并每次。如果您只生成一次文件,然后通过 Python 调用导入它,那么将文件写入磁盘将受益于该缓存。

关于python - 将代码写入文件,然后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43864630/

相关文章:

python-3.x - 导入错误 : No module named 'logging.handlers' ; 'logging' is not a package

python - Django MEDIA_URL 和 MEDIA_ROOT

python - 从轮格式 : "...is not a supported wheel on this platform" 安装 numpy

python - 将元素附加到 3 维列表

apache - 如何在 CentOS 7 上使用 python3.5 为 apache 2.4+ 安装 mod_wgsi

python-3.x - 如何从 Python Dict 创建 Protobuf Struct?

python - 将 Python PuDB 调试器与 pytest 结合使用

python - 使用字典更新 Pandas 数据框或 csv

python - 在 groupby pandas 数据框中创建两个移位列

python - 在 Python 中,小 float 趋于零