Python 2具有内置函数execfile,在Python 3.0中已将其删除。这个问题讨论了Python 3.0的替代方法,但是自Python 3.0以来已经进行了一些重大更改)。
execfile
execfile对于Python 3.2和将来的Python 3.x版本,最好的替代方法是什么?
该2to3脚本内容替换
2to3
execfile(filename, globals, locals)
通过
exec(compile(open(filename, "rb").read(), filename, 'exec'), globals, locals)
这似乎是官方建议。您可能需要使用一个with块来确保立即再次关闭该文件:
with
with open(filename, "rb") as source_file: code = compile(source_file.read(), filename, "exec") exec(code, globals, locals)
您可以省略globals和locals参数以在当前范围内执行文件,或用于exec(code, {})将新的临时字典用作全局和本地字典,从而在新的临时范围内有效地执行文件。
globals
locals
exec(code, {})