class MyOpen(object):
"""context manage class"""
def __init__(self, file, mode):
self._file = file
self._mode = mode
def __enter__(self): self._handle = open(self._file, self._mode)
return self._handle
def __exit__(self, exc_type, exc_val, exc_tb):
print('Type: ', exc_type)
print('Value:', exc_val)
print('TreacBack:', exc_tb)
self._handle.close()
return True
with MyOpen('f.txt', 'r') as f:
f.write('python')
from contextlib import contextmanager
@contextmanager
def diy_open(filename, **kwargs):
f = open(filename, **kwargs)
try:
yield f
finally:
f.close()
with diy_open('test.txt',
encoding='utf-8') as f:
print(f.readlines())
python: context manage
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 内容简介 本文内容为该项目V1.0版本的内容。 本章节进行前后端分离项目的后台数据API接口内容的部分示。由...
- 当你修改modal出现错误后,执行python manage.py makemigrations成功,然后执行py...
- 报错信息: 原因:这种的启动方式,Django默认启动的8000端口,而上述的问题是: 8000端口被占用导致的,...
- binlog的格式有三种:STATEMENT,ROW,MIXED; mysql默认的binlog_format是S...
- 问题描述: python3成功配置好pymysql后,准备Django项目的数据库由默认的sqllite更改为my...