【视频教程】012.简述with在文件处理中的作用
导语
你千万别跟任何人谈任何事情。你只要一谈起,就会想念起每一个人来,我只知道我很想念我所谈到的每一个人。
——J·D·塞林格《麦田里的守望者》
友情提示:点击阅读原文可以进入B站查看本视频高清版。
#12.简述with方法打开处理文件帮我我们做了什么?
#一般访问文件资源时我们会这样处理:f = open('c:\test.txt', 'r')
data = f.read()
f.close()
# 这样写没有错,但是容易犯两个毛病:
# 1. 如果在读写时出现异常而忘了异常处理。
# 2. 忘了关闭文件句柄#以下的加强版本的写法:f = open('c:\test.txt', 'r')
try:data = f.read()
finally:f.close()#以上的写法就可以避免因读取文件时异常的发生而没有关闭问题的处理了。代码长了一些。
#但使用with有更优雅的写法:with open(r'c:\test.txt', 'r') as f:data = f.read()
#with的实现class Test:def __enter__(self):print('__enter__() is call!')return selfdef dosomething(self):print('dosomethong!')def __exit__(self, exc_type, exc_value, traceback):print('__exit__() is call!')print(f'type:{exc_type}')print(f'value:{exc_value}')print(f'trace:{traceback}')print('__exit()__ is call!')with Test() as sample:pass#当对象被实例化时,就会主动调用__enter__()方法,任务执行完成后就会调用__exit__()方法,
#另外,注意到,__exit__()方法是带有三个参数的(exc_type, exc_value, traceback),
#依据上面的官方说明:如果上下文运行时没有异常发生,那么三个参数都将置为None,
#这里三个参数由于没有发生异常,的确是置为了None, 与预期一致.# 修改后不出异常了
class Test:def __enter__(self):print('__enter__() is call!')return selfdef dosomething(self):x = 1/0print('dosomethong!')def __exit__(self, exc_type, exc_value, traceback):print('__exit__() is call!')print(f'type:{exc_type}')print(f'value:{exc_value}')print(f'trace:{traceback}')print('__exit()__ is call!')return Truewith Test() as sample:
扫码关注,不迷路哦!
Facebook的广告也许正在窃听你的对话
python数据可视化神器--pyecharts 快速入门
【视频教程】011.__init__和__new__的使用
当 Python 中混进一只薛定谔的猫……
LeetCode - 001
和张哥的那些天,互联网人的潜规则
那些年错过的并发知识!
超强汇总:学习Python列表,只需这篇文章就够了
记一次群聊吃瓜引发的JS破解教程
爬虫之线程池 ThreadPoolExecutor 的用法及实战
▼立即加星标,每天看好文▼
1
2
极客学习空间
新媒体人都在关注
喜欢,就为我标星
我今天才知道,我之所以漂泊就是在向你靠近。
--《廊桥遗梦》
猜你喜欢
【视频教程】一行代码实现1-100的和
【视频教程】函数内修改全局变量
【视频教程】003-列举5个python标准库
【视频教程】004.字典删除键值对和合并字典
【视频教程】005. 单引号、双引号和三引号的区别
【视频教程】006.列表重复元素去除
【视频教程】007.args和kwargs的理解
【视频教程】008.python中单下划线和双下划线
【视频教程】009.说说AOP和装饰器
【视频教程】010.Python内置数据类型
【视频教程】011.__init__和__new__的使用
【视频教程】012.简述with在文件处理中的作用相关推荐
- winform在表格中输入一个完整的时间字段_【ArcGIS小技巧视频教程】(5):在ArcGIS中挂接其他数据...
我们在制图的过程中可能会遇到这样的问题:我们在拿到一幅地图和一些表格数据,我们想把表格数据附属到地图上,并进行渲染显示.今天我们就分享一下如何将一些外接的表格数据,挂接到已有地图的属性表上,文末附视 ...
- 获取文件夹中所有文件的文件名[重复]
本文翻译自:Getting the filenames of all files in a folder [duplicate] Possible Duplicate: 可能重复: Read all ...
- c语言中的头文件stdlib.h的作用,C语言中你可能不熟悉的头文件(stdlib.h)
C语言中你可能不熟悉的头文件(stdlib.h) C Standard General Utilities Library (header) C标准通用工具库(头文件) 此头文件定义了一些通用功能函数 ...
- IO流批量改文件名字,把文件夹中类似于文件名,“我java_爱好者_最帅“改成“爱好者_最轻特工组合“
批量改文件名字,把文件夹中类似于文件名,"我java_爱好者_最帅"改成"爱好者_最轻特工组合" [思路] 最完整的思路 得到所有的文件对象(把所有要改名字的文 ...
- MATLAB【八】———— matlab 读取单个(多个)文件夹中所有图像
0.matlab 移动(复制)文件到另一个文件夹 sourcePath = '.\Square_train'; targetPath = '.\Square_test'; fileList = dir ...
- 【python】使用python脚本将CelebA中同一人的图片捡到对应单独的文件夹中
1.目的 CelebA的所有的照片都在一个文件夹中,为了能在dlib训练人脸识别时,方便使用,将CelebA中同一人的图片捡到对应单独的文件夹中. [AI]CelebA数据介绍.下载及说明 2.方法 ...
- matlab读取一个文件的图片大小,Matlab读取文件夹中子文件夹中的图片并修改尺寸...
今天被师兄问到如何利用matlab批处理图片,觉得很简单嘛 就让他去百度 结果只百度到处理文件夹中图片的程序 好吧 这里放上如何处理文件夹中子文件夹的图片 现状:在一个名为casia的文件夹中,里面有 ...
- VMware虚拟机文件夹中各文件作用详解
VMware虚拟机文件夹中各文件作用详解 虚拟机的文件管理由VMware Workstation来执行. 一个虚拟机一般以一系列文件的形式储存在宿主机中, 这些文件一般在由workstation为虚拟 ...
- Mysql 宕机引发索引丢失很可怕,文件 IO 中如何保证掉电不丢失数据?
欢迎关注方志朋的博客,回复"666"获面试宝典 众所周知,存储设计离不开文件 IO,将数据存储到文件中进行持久化,是大多数消息队列.数据库系统的常规操作.为了更贴近实际的生产场景, ...
最新文章
- 博客堂也遇DotText经典Exception
- 数据结构与算法之贪心算法 C++实现
- 华为dra路由方式分为relay和proxy_华为云计算(3)——网络虚拟化
- python项目-推荐 10 个有趣的 Python 练手项目
- LeNet试验(一) 搭建pytorch版模型及运行
- 初学者也能看懂的DPDK解析
- redis 如何 mysql_Redis 如何保持和 MySQL 数据一致
- rust实现wss访问_Rust的所有权,第2部分
- flexbox算法实现_如何使用Flexbox实现水平滚动
- TCP滑动窗口机制深度剖析
- 45.国际化-选择使用资源文件
- 孪生神经网络_驾驶习惯也能识人?基于时空孪生神经网络的轨迹识别
- centos7本地安装mysql_centos7安装mysql
- c语言必背数据结构_严蔚敏数据结构(C语言版)知识点总结笔记课后答案
- 如何pdf转换word文字并重新排版格式?
- 路由宽带运营商服务器未响应,宽带运营商服务器未响应解决方法
- Unity3D:2D角色移动篇2:动画的添加
- java.io.IOException: 远程主机强迫关闭了一个现有的连接。
- #初等数学# 根式加减法法则
- navicat连接LinuxMySQL10038错误、mysql通过命令行进行导入导出sql文件
热门文章
- 美石油管道大亨遭勒索攻击被迫停服,宣布进入区域性紧急状态
- 使用JavaFX2.0编写国际象棋游戏
- 学习笔记(一)-古月ROS机器视觉开发入门 -ROS摄像头驱动及数据接口
- 多特征融合的高分辨率遥感图像海陆分离——刘思彤
- 如何使用Docx4J合并docx及pptx文档
- 用友笔试题java_用友面试题(Java)
- ubuntu18.04配置ORB-SLAM3(包含ROS)完整版教程
- 各大网站RSS订阅源地址
- Xcode8出现AQDefaultDevice(173):Skipping input stram 0 0 0x0
- GRP-U8单机版如何备份账套