栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python中with_python中with的用法?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python中with_python中with的用法?

#with语句(上下文管理器)
#with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件的正确关闭,
#以此来达到释放资源的目的
'''
with open(上下文管理器)
'''
with open('a.txt','r') as file:#as起个别名
    print(file.read())#不用写close了,不用手动关闭
'''
MyContentMgr实现了特殊方法__enter__()和__exit__()称该类对象(一切皆对象)
遵守了上下文管理器协议,
该类对象的实例对象就成为上下文管理器
MyContentMgr()#创建实例对象,写个小括号就表示创建该类的实例对象了
即当一个类涵盖两种方法enter和exit的时候,这个类的对象就称为上下文管理器
'''
'''
class MyContentMgr(object):
    def __enter__(self):
        print('enter方法被调用执行了')
        return self
    def __exit__(self, exc_type, exc_val, exc_tb):
        print('exit方法被调用执行了')
        return self
    def Show(self):
        print('show方法被调用执行了')
    
    #def Show(self):
    #print('show方法被调用执行了',1/0)
    
with MyContentMgr() as file:#相当于file=MyContentMgr()
    file.Show()
#自动调用enter方法
#with开始先调用enter,with结束时调用exit
#with下面有缩进,缩进里面的东西都成为with语句体
#当with语句体执行完毕后,会自动跳出上下文管理器,然后调用exit方法
#enter被执行-->执行with语句体-->执行exit
#无论程序是否出错,都会执行exit方法,自动关闭了资源
#
'''
with open('logo.jpg','rb') as src_file:#读取二进制文件
    #相当于src_file=open('logo.jpg','rb')
    with open('copy2logo.jpg','wb') as target_file:#写二进制文件,起名名为copy2logo.jpg
    #相当于target_file=open('copy2logo.jpg','wb')
       target_file.write(src_file.read())
#不用手动写关闭了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/786895.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号