【python】上下文管理之with自定义open
#!/usr/bin/env python # -*- coding:utf-8 -*- import contextlib#引入上下文管理包 @contextlib.contextmanager #给函数引入装饰器 def myopen(dir,mode): print("开始") f=open(dir,mode,encoding='utf-8') try:#上文 yield f finally:#下文 print("结束") f.close() with myopen("./Thread-2.txt",'r') as fobj:#把try中的yield中的f赋值给fobj #with会将with后面的函数中的yield赋值给fobj for i in fobj: print(i) #等待上面的循环结束后,才最终执行finally的代码,所以这就是上下文管理

浙公网安备 33010602011771号