Python读取多种格式文件详解(txt csv json)及常见错误处理
日期:2025-05-19 14:41:23 •原创
是不是经常遇到这种情况?下载了一堆数据文件,点开发现有的是txt文档,有的是csv表格,还有的json文件像天书,急得直拍大腿?别慌!今天咱们就把这几种文件格式的读取方法掰开了揉碎了讲,保准你看完就能上手!
??一、txt文件:最基础的往往最坑人??
别看txt文件长得朴实无华,新手翻车现场可多了去了。举个栗子,你兴冲冲写了段代码:
python复制file = open("日记.txt") print(file.read())
结果要么报错找不到文件,要么读出来一堆乱码。你猜怎么着?问题八成出在这三个地方:
- ??文件路径写错了??(试试用绝对路径
C:/Users/桌面/日记.txt
) - ??忘记指定编码格式??(加上
encoding='utf-8'
参数) - ??读完了不关门??(用with语句自动关)
??正确姿势长这样:??
python复制with open("日记.txt", "r", encoding="utf-8") as f: content = f.readlines() # 一次读取所有行
??二、csv文件:表格数据的花式玩法??
处理Excel表格的平替方案,但坑也不少。比如这个报错:"Error: iterator should return strings",多半是因为文件里有特殊符号。来看个对比表格:
操作需求 | 推荐方法 | 优点 |
---|---|---|
快速查看前几行 | csv.reader | 轻量级,无需额外处理 |
按列名读取数据 | csv.DictReader | 字典结构直观易用 |
处理含逗号的内容 | quoting参数 | 避免数据分割错误 |
??实战代码:??
python复制import csv with open("销售数据.csv", encoding="gbk") as f: # 处理中文表头必备操作 reader = csv.DictReader(f) for row in reader: if "¥" in row["金额"]: # 处理特殊符号 price = float(row["金额"].strip("¥"))
??三、json文件:程序员的最爱与噩梦??
这玩意儿看着结构清晰,但格式错一点就崩盘。常见死亡现场:
- 末尾多了个逗号
{"name": "张三",}
- 键名没加双引号
{name: "李四"}
- 数据层级嵌套太深
??救命代码套餐:??
python复制import json try: with open("用户配置.json") as f: data = json.load(f) # 自动转字典 print(data["theme"]["color"]) except json.decoder.JSONDecodeError: print("兄弟,你的json格式有问题!")
??四、跨格式读取对照表??
给各位总结个干货对比:
文件类型 | 读取方式 | 数据结构 | 必备处理 |
---|---|---|---|
txt | 直接读取 | 字符串/列表 | 编码转换、分割处理 |
csv | csv模块 | 二维表 | 处理分隔符、特殊字符 |
json | json模块 | 嵌套字典 | 格式校验、类型转换 |
通用 | pandas库 | DataFrame | 适合复杂数据分析场景 |
??五、过来人的血泪经验??
干了五年数据分析的老油条想说几句掏心窝子的话:
- ??路径处理用pathlib??,比字符串拼接靠谱一万倍
- ??看见中文就加编码参数??,utf-8和gbk换着试试
- ??大文件别一次性读取??,用生成器逐行处理才是王道
- ??异常捕获不能少??,try-except套上保平安
最后说句实在的,文件读取这东西就像学游泳,光看教程不下水永远学不会。多写多报错,见得坑多了自然就成高手了。记住,报错信息是你的好朋友,它说啥你就修啥,修着修着突然就开窍了!
本文由嘻道妙招独家原创,未经允许,严禁转载