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

时间:2017-05-09 08:19:02

标签: 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()

1 个答案:

答案 0 :(得分:3)

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

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