美文网首页
[python] open()与with open()

[python] open()与with open()

作者: 原来是酱紫呀 | 来源:发表于2018-11-23 10:34 被阅读0次

    20181122 qzd


    1. open()

    file = open("text.txt","r")
    for line in file.readlines():
      print line
    file.close()
    

    这样直接打开文件,如果出现异常(如,读取文件过程中文件不存在),则直接出现错误,close命令无法执行,文件无法关闭。

    2. with open() as file:

    with open("test.txt","r") as file:
      for line in file.readlines():
        print line 
    

    好处:用with语句的好处就是到达语句末尾时会自动关闭文件,即使出现异常。
    with语句实际上是一个非常通用的结构,允许你使用所谓的上下文管理器。上下文管理器是支持两个方法的对象:_enter_和 _exit_

    方法_enter_不接受任何参数,在进入with语句时被调用,其返回值被赋给关键字as后面的变量。
    方法_exit_接受三个参数:异常类型、异常对象和异常跟踪。它在离开方法时被调用(通过前述参数将引发的异常提供给它)。如果_exit_返回False,将抑制所有的异常。

    文件也可用作上下文管理器。它们的方法_enter_返回文件对象本身,而方法_exit_关闭文件。

    3. try-except-finally

    file= open("test.txt","r")
    try:
      for line in file.readlines():
        print line
    except:
      print "error"
    finally:
      file.close()
    

    with语句作用效果相当于上面的try-except-finally

    相关文章

      网友评论

          本文标题:[python] open()与with open()

          本文链接:https://www.haomeiwen.com/subject/ehgdqqtx.html