我有一个 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/