微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python 3中execfile的替代品? [重复]

如何解决python 3中execfile的替代品? [重复]

|                                                                                                                   这个问题已经在这里有了答案:                                                      

解决方法

        
2to3
脚本(也是Python 3.2中的脚本)替换了
execfile(filename,globals,locals)
通过
exec(compile(open(filename,\"rb\").read(),filename,\'exec\'),locals)
这似乎是官方建议。     ,        
execfile(filename)
可以替换为
exec(open(filename).read())
适用于所有版本的Python 较新版本的Python会警告您您尚未关闭该文件,因此您可以这样做,因为您想摆脱该警告:
with open(filename) as infile:
    exec(infile.read())
但是,实际上,如果您关心关闭文件,则首先应该不要使用
exec
。     ,        在Python3.x中,这是我直接执行与运行
python /path/to/somefile.py
相匹配的文件所能想到的最接近的东西。 笔记: 使用二进制读取以避免编码问题 Garenteed关闭文件(Python3.x对此发出警告) 定义“ 8”,某些脚本依赖于此检查它们是否作为模块加载,例如。
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,global_namespace)

# execute the file
exec_full(\"/path/to/somefile.py\")
    ,        标准runpy.run_path是替代方法。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。