python文件读取with open替代try finally

读写文件就是请求操作系统打开一个文件对象(文件描述符),然后通过操作系统提供的接口从这个文件对象中读写文件。

读文件

以读模式打开一个文件

>>> r = open("1.log", "r")

如果文件不存在,open()函数会抛出一个IOError的错误

>>> r = open("2.log", "r")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '2.log'

读取内容,关闭文件

>>> r.read()
'111111'
>>> r.close()

防止文件读写时因为产生IOError,而导致close()未调用。我们可以用try... finally

try:
    f = open("1.log", "r")
    try:
        print(f.read())
    except:
        print("文件读写异常")
    finally:
        f.close()
except:
    print('打开文件异常')

with open简单写法,等同于try...finally

try:
    with open("1.log", "r") as f:
        print(f.read())
except:
    print("打开文件异常")

写文件

当我们写文件时,系统往往不会立即写入,而是先放到内存里缓存起来,空闲时慢慢写入。只有调用close()方法时,操作系统才能立即写入。为了防止忘记调用close(),所以用with语句比较保险

with open("1.log", "w") as f:
    f.write("hello world")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • IO编程概念 IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由C...
    时间之友阅读 731评论 0 0
  • 1 IO的含义 在计算机中,IO是Input/Output的简写,也就是输入和输出。 由于程序和运行时数据是在内存...
    hufengreborn阅读 27,694评论 2 13
  • 定义类并创建实例 在Python中,类通过 class 关键字定义。以 Person 为例,定义一个Person类...
    绩重KF阅读 3,976评论 0 13
  • ​ 今天分享的书叫做《抗压力》,作者来自日本的久世浩司。 分享的内容为:处理消极情绪、获取积极力量、从痛苦中成长。...
    娜娜_51cf阅读 415评论 0 0