小编典典

python 3中execfile的替代品?

python

Python
2具有内置函数execfile,在Python
3.0中已将其删除。这个问题讨论了Python 3.0的替代方法,但是自Python
3.0以来
已经进行了一些重大更改)。

execfile对于Python
3.2和将来的Python
3.x版本
,最好的替代方法是什么?


阅读 183

收藏
2020-12-20

共1个答案

小编典典

2to3脚本内容替换

execfile(filename, globals, locals)

通过

exec(compile(open(filename, "rb").read(), filename, 'exec'), globals, locals)

这似乎是官方建议。您可能需要使用一个with块来确保立即再次关闭该文件:

with open(filename, "rb") as source_file:
    code = compile(source_file.read(), filename, "exec")
exec(code, globals, locals)

您可以省略globalslocals参数以在当前范围内执行文件,或用于exec(code, {})将新的临时字典用作全局和本地字典,从而在新的临时范围内有效地执行文件。

2020-12-20