← 全部文章

技术与生活 / 一篇记录

文件写完了,为什么还要关心关闭时机?

上下文管理器可以在正常结束和异常退出时释放文件资源。

文件对象可能持有缓冲数据和系统资源。with 把资源生命周期限制在代码块里,异常发生时也会调用退出清理,通常比手工在多个分支 close 更清楚。

操作与观察

以下示例使用 Python 3,文件路径和输入值均为练习样本。

with open('demo.txt', 'w', encoding='utf-8') as f:
    f.write('hello\n')

离开代码块后重新读取文件,确认内容已写出。

在写入中途制造异常,随后检查文件句柄是否已释放。但关闭文件并不保证内容完整,重要配置最好写入临时文件,校验后再替换正式文件。

需要把结果交给其他进程读取时,写入、关闭与入口替换可以安排成清晰阶段。先完成新文件,再让读取方看到它,通常比依靠读取方不断重试半成品更容易维护。

别遗漏这条边界

不要在代码块外继续使用已经关闭的文件对象。

参考:Python 文档。

搜索文章

输入关键词,找回一篇记录。