Python 文件操作
来源:互联网 发布:程序员给女朋友的礼物 编辑:程序博客网 时间:2024/05/29 14:33
上下文管理器,通俗的介绍就是:在代码块执行前,先进行准备工作;在代码块执行完成后,做收尾的处理工作。with语句常伴随上下文管理器一起出现,经典场景有:
with open('test.txt', 'r') as file: for line in file.readlines(): print(line)
通过with语句,代码完成了文件打开操作,并在调用结束,或者读取发生异常时自动关闭文件,即完成了文件读写之后的处理工作。如果不通过上下文管理器的话,则会是这样的代码:
file = open('test.txt', 'r')try: for line in file.readlines(): print(line)finally: file.close()
比较繁琐吧?所以说使用上下文管理器的好处就是,通过调用我们预先设置好的回调,自动帮我们处理代码块开始执行和执行完毕时的工作。而通过自定义类的enter和exit方法,我们可以自定义一个上下文管理器。
class ReadFile(object): def __init__(self, filename): self.file = open(filename, 'r') def __enter__(self): return self.file def __exit__(self, type, value, traceback): # type, value, traceback 分别代表错误的类型、值、追踪栈 self.file.close() # 返回 True 代表不抛出错误 # 否则错误会被 with 语句抛出 return True
然后可以以这样的方式进行调用:
with ReadFile('test.txt') as file_read: for line in file_read.readlines(): print(line)
在调用的时候:
1 with语句先暂存了ReadFile类的exit方法
2 然后调用ReadFile类的enter方法
3 enter方法打开文件,并将结果返回给with语句
4 上一步的结果被传递给file_read参数
5 在with语句内对file_read参数进行操作,读取每一行
6 读取完成之后,with语句调用之前暂存的exit方法
7 exit方法关闭了文件
要注意的是,在exit方法内,我们关闭了文件,但最后返回True,所以错误不会被with语句抛出。否则with语句会抛出一个对应的错误。
0 0
- Python 文件操作常用操作
- [python]python操作xml文件
- Python文件操作
- python文件目录操作
- Python文件操作
- Python文件操作
- python 文件操作
- python 文件操作
- Python 文件操作
- python 文件操作
- Python文件操作
- python 文件读写操作
- Python文件读写操作
- python文件目录操作
- Python的文件操作
- python常见文件操作
- python - 文件操作
- python文件操作
- nginx+lua
- UNDERSTANDING CONVOLUTIONAL NEURAL NETWORKS FOR NLP
- cocos2dx显示win32控制台
- C、C++基础知识之一 关键字const的含义和用途
- IMPLEMENTING A CNN FOR TEXT CLASSIFICATION IN TENSORFLOW
- Python 文件操作
- 自动化构建-maven
- ZooKeeper源码解析(一):ZooKeeper概述
- kafka比其他消息快的原因
- Python 面向对象
- 【Reading Notes】CP1-Create a basic Standard Shader
- Caffe学习 图像识别与数据可视化
- Python 面向对象
- layerUI下的绑定事件