Python 文本处理需用 open()指定编码(如 utf-8),with 语句确保关闭;CSV 用 csv 模块避免手动分割;JSON 用 json 模块序列化,注意编码、indent 和 ensure_ascii 参数及非标准类型处理。

读写文本文件:掌握基础操作
Python 处理文本最常用的是内置的 open() 函数。默认以只读模式(‘r’)打开,返回一个文件对象。写入需显式指定模式:‘w’(覆盖写)、‘a’(追加写)。记得用 with 语句自动关闭文件,避免资源泄漏。
- 读取全部内容:file.read() 返回字符串;file.readlines() 返回每行带换行符的列表
- 逐行处理更省内存:for line in file: 直接迭代,line 包含末尾的 n,可用 .strip() 去除
- 写入时注意 编码:中文务必加 encoding=’utf-8′,否则可能报错或乱码
CSV 文件处理:用 csv 模块更安全
别用普通文本方式手动切分逗号——CSV 字段本身可能含逗号、换行或引号。Python 标准库 csv 模块专为解决这类问题设计。
- 读取:用 csv.reader(f) 得到可迭代的行(每行是字符串列表);或用 csv.DictReader(f),首行作键,返回字典,更直观
- 写入:用 csv.writer(f) 的 writerow() 或 writerows();若用 DictWriter,需提前传入 fieldnames 并调用 writeheader()
- 注意:打开 CSV 文件时,Windows 下建议加 newline=” 参数,防止空行;其他系统影响不大
JSON 数据交换:序列化与反序列化
JSON 是轻量级数据格式,Python 通过 json 模块实现 dict/list/str/int/float/bool/None 与 JSON 字符串的互转。它不支持 datetime、自定义类等类型,需额外处理。
- 从文件读 JSON:json.load(f);从字符串解析:json.loads(s)
- 写入文件:json.dump(data, f);生成字符串:json.dumps(data)
- 常用参数:indent=2 让输出美观可读;ensure_ascii=False 保留中文字符(否则转成 uXXXX)
- 遇到非标准类型(如日期),可传入 default 函数,例如 default=str 把日期转字符串
常见问题 与避坑提醒
实际操作中容易忽略细节,导致报错或数据异常。
立即学习“Python 免费学习笔记(深入)”;
- UnicodeDecodeError?多半是编码没对上。先确认文件真实编码(如用 Notepad++ 查看),再在 open() 中指定,不要依赖默认
- 写入后文件为空或内容丢失?检查是否漏了 f.close() 或未用 with;也可能是用 ‘w’ 模式误删了原内容
- CSV 中 中文乱码 或 Excel 打不开?保存时用 UTF-8 with BOM(部分旧版 Excel 需要),或改用 utf-8-sig 编码
- JSON 中有 NaN、Inf?Python 的 float(‘nan’) 不被 json 支持,需预处理替换为 None 或字符串






























