目标:

    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 不是一个类,而是一个上下文管理函数!!

    代码:

    image.png


    三:自己构建一个上下文管理器类实现读取指定文件内容

    什么是上下文管理器?

    答:即支持 with 操作的类或者函数!

    上下文管理器类包含的方法:

    1:初始化方法init( ) 用来接收参数【文件名、打开方式】
    2:上文方法enter( ) 用来打开文件并且返回这个对象
    3:下文方法exit( )用来关闭打开的文件!

    注意事项:类里面如果有多个方法想共用一个变量,那么这个变量要变成实例属性的方式才行,也就是加上self

    代码:

    image.png