Mat*_*ner 51 python import execfile python-3.x
Python 2有内置函数execfile
,在Python 3.0中删除了.这个问题讨论了Python 3.0的替代方案,但自Python 3.0以来已经做了一些重大的改变.
execfile
Python 3.2和未来的Python 3.x版本的最佳替代方案是什么?
Sve*_*ach 59
该2to3
脚本(也是Python 3.2中的脚本)取代了
execfile(filename, globals, locals)
Run Code Online (Sandbox Code Playgroud)
通过
exec(compile(open(filename, "rb").read(), filename, 'exec'), globals, locals)
Run Code Online (Sandbox Code Playgroud)
这似乎是官方的建议.
Len*_*bro 49
execfile(filename)
Run Code Online (Sandbox Code Playgroud)
可以替换为
exec(open(filename).read())
Run Code Online (Sandbox Code Playgroud)
适用于所有版本的Python
在Python3.x中,这是我能够直接执行文件,匹配运行的最接近的东西python /path/to/somefile.py
.
笔记:
__main__
,一些脚本依赖于此来检查它们是否作为模块加载,例如.if __name__ == "__main__"
__file__
对于异常消息更好,一些脚本用于__file__
获取相对于它们的其他文件的路径.def exec_full(filepath):
import os
global_namespace = {
"__file__": filepath,
"__name__": "__main__",
}
with open(filepath, 'rb') as file:
exec(compile(file.read(), filepath, 'exec'), global_namespace)
# execute the file
exec_full("/path/to/somefile.py")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
66095 次 |
最近记录: |