Python的上下文管理器
2016-06-18 22:21
381 查看
class FileMag():
def __init__(self,filename):
self.filename=filename
self.f=None
def __enter__(self):
self.f=open(self.filename,encoding="utf-8")
return self.f
def __exit__(self, exc_type, exc_val, exc_tb):
if self.f:
self.f.close()
if __name__=="__main__":
with FileMag("a10_4.py") as book:
for i in book.readlines():
print(i)
定义一个管理文件资源对象的上下文管理器类,在进入时打开文件,退出时关闭文件,然后用with语句来使用这个上下文管理器,打开一个指定的文件,并输出其中的内容。
在每次使用时都不用重新打开和关闭文件。
其中在Python中实现上下文管理器的模块中还有
import contextlib
@contextlib.contextmanager
def ga(s,e):
print(s)
print(s+" "+e)
print(e)
if __name__=="__main__":
with ga("Start","End") as val:
print(val)
def __init__(self,filename):
self.filename=filename
self.f=None
def __enter__(self):
self.f=open(self.filename,encoding="utf-8")
return self.f
def __exit__(self, exc_type, exc_val, exc_tb):
if self.f:
self.f.close()
if __name__=="__main__":
with FileMag("a10_4.py") as book:
for i in book.readlines():
print(i)
定义一个管理文件资源对象的上下文管理器类,在进入时打开文件,退出时关闭文件,然后用with语句来使用这个上下文管理器,打开一个指定的文件,并输出其中的内容。
在每次使用时都不用重新打开和关闭文件。
其中在Python中实现上下文管理器的模块中还有
import contextlib
@contextlib.contextmanager
def ga(s,e):
print(s)
print(s+" "+e)
print(e)
if __name__=="__main__":
with ga("Start","End") as val:
print(val)
相关文章推荐
- python中的编码问题
- Python学习爬虫中遇到点问题
- 从0开始玩安全--Python篇--Python入门指导 & 案例Unixshadow密码破解
- 使用Python Pandas处理亿级数据
- 【leetCode】Path Sum II python实现
- python_day6学习笔记
- python之数据类型(二)
- [Python]垃圾回收机制
- python csv
- ubuntu上使用virtualenv建立多个python独立开发环境
- python之数据类型(一)
- Python 文件Hash(MD5,SHA1)
- python的变量作用域
- python heapq
- 用 Python实现一个ftp+CRT(不用ftplib)
- Json概述以及python对json的相关操作
- python matplotlib 方程的绘制
- 爱的方程式(Python)
- 快速入门:十分钟学会Python
- sorting a python list by two criteria