代码点读机 / Python / with

with Python · 关键字

帮你自动管理资源,比如打开文件后,离开 with 块时自动关闭,不用自己写 close(),类似于一个能在你离开房间之后自动把房间打扫干净并关上门的保洁。

怎么用

with 资源对象 as 变量:
    # 使用资源,离开后自动清理

小例子

with open("日记.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)
# 这里已经自动关闭文件,不需要 f.close()

说明

打印文件内容

对比

传统写法要 f = open(...) 然后 f.close(),中途出错还容易忘记关;with 无论是否出错都会自动关闭。

提醒:with 后面的对象必须支持上下文管理协议(有 __enter__ 和 __exit__),常见如文件、网络连接、锁都支持。

官方文档:https://docs.python.org/zh-cn/3/reference/compound_stmts.html#index-18

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Python全部词条