Python 文件读写与数据持久化实战
在 Daoman Python AI 的后端开发或模型训练中,我们经常需要处理数据的持久化(Persistence)。所谓持久化,是指将数据从易失的存储介质(通常是内存)转移到可以长久保存的介质(通常是硬盘、SSD)中。实现这一目标最直接、最标准的方式,就是通过文件系统将数据保存到文件里。
1. 理解文件系统的抽象层
计算机的文件系统是一套成熟的“数据管家”方案。它用“文件”和“树形目录”的简单逻辑概念,彻底屏蔽了硬盘磁道寻址、SSD磨损平衡、USB协议交互这些复杂的底层物理细节。
作为应用层开发者,你完全不需要提前找硬盘的空白物理扇区,也不用操心断电后的数据校验问题——文件系统会自动分配空间、管理索引、处理故障容错。你只需要通过绝对路径/相对路径+文件名,就能轻松完成“存东西、取东西”的操作,这极大降低了存储开发的入门门槛。
2. 打开与关闭文件:open() 函数核心解析
Python 中操作文件的唯一(官方推荐)入口是内置函数 open()。通过传入不同的操作模式字符串,你可以控制文件的读写权限、处理方式(文本/二进制)、更新权限等。
2.1 常用操作模式速查
整理了高频场景下的模式组合,避免记混单字符的含义:
🚩 新手避坑指南(必看) 处理中文文本、JSON/YAML等结构化文本文件时,务必显式指定
encoding='utf-8'!不要依赖操作系统的默认编码(比如 Windows 下的 GBK、Mac/Linux 早期可能用的 Latin-1),否则 90% 以上的概率会遇到经典的UnicodeDecodeError或UnicodeEncodeError。
3. 文本读写的工业级实践
虽然 Python 提供了 file.close() 手动关闭文件的方法,但在生产环境或团队协作代码中,100% 推荐使用 with 关键字(上下文管理器)。
它有两个不可替代的优势:
- 自动安全释放资源:即使读写过程中发生了
ValueError、IOError甚至是系统级异常,文件句柄也会被立刻释放,不会造成资源泄漏(资源泄漏在高并发服务中会导致“Too many open files”报错,直接挂服务)。 - 代码可读性更强:缩进块明确了“文件操作的有效范围”,团队成员一眼就能看懂哪里在操作文件。
3.1 读取文本文件的三种主流方式
根据文件大小和业务需求,选择最适合的读取方案,不要盲目用全量读取:
3.2 写入与追加数据
根据是否保留旧内容,选择 'w'(覆盖)或 'a'(追加)模式:

