目标:
1:掌握利用with 操作文件的优点
2:掌握with 操作文件的步骤!
3:掌握自己构建一个上下文管理器类实现读取指定文件内容
一:利用 with 操作文件的优点
答:与单纯的 open 打开文件相比,当 open 打开文件出现错误时,因为资源已经分配,所以对这个文件资源进行关闭操作就会失败,with 方式操作文件可有效解决这一问题!不会出现文件关闭失败的情况!
二: with 操作文件的步骤!
第一步:执行上下文管理类里面的上文方法即 enter()并且返回一个对象,也就是 as 后面的那个变量(实质是打开文件返回的对象)!
第二步:利用返回的对象对文件进行读写等操作!
第三步:执行上下文管理类里面的下文方法即 exit( ) 即关闭文件!
注意事项:
1:执行enter()上文方法返回的对象也就是 as 后面的 file ,file的实质为 file = open(“文件名”,“打开方式”)的打开文件操作的语句,而非是 open类
2:下面的注释中有一处错误就是 with open(“text.txt”,“r”) 的 open 不是一个类,而是一个上下文管理函数!!
代码:
三:自己构建一个上下文管理器类实现读取指定文件内容
什么是上下文管理器?
答:即支持 with 操作的类或者函数!
上下文管理器类包含的方法:
1:初始化方法init( ) 用来接收参数【文件名、打开方式】
2:上文方法enter( ) 用来打开文件并且返回这个对象
3:下文方法exit( )用来关闭打开的文件!
注意事项:类里面如果有多个方法想共用一个变量,那么这个变量要变成实例属性的方式才行,也就是加上self
代码: