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、自定义类等类型,需额外处理。
本书图文并茂,详细讲解了使用LAMP(PHP)脚本语言开发动态Web程序的方法,如架设WAMP平台,安装与配置开源Moodle平台,PHP程序设计技术,开发用户注册与验证模块,架设LAMP平台。 本书适合计算机及其相关专业本、专科学生作为学习LAMP(PHP)程序设计或动态Web编程的教材使用,也适合对动态Web编程感兴趣的读者自觉使用,对LAMP(PHP)程序设计人员也具有一定的参考价值。
- 从文件读 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 或字符串









