1. 主页 > 大智慧

Python读取多种格式文件详解(txt csv json)及常见错误处理

是不是经常遇到这种情况?下载了一堆数据文件,点开发现有的是txt文档,有的是csv表格,还有的json文件像天书,急得直拍大腿?别慌!今天咱们就把这几种文件格式的读取方法掰开了揉碎了讲,保准你看完就能上手!


??一、txt文件:最基础的往往最坑人??
别看txt文件长得朴实无华,新手翻车现场可多了去了。举个栗子,你兴冲冲写了段代码:

python复制
file = open("日记.txt")
print(file.read())

结果要么报错找不到文件,要么读出来一堆乱码。你猜怎么着?问题八成出在这三个地方:

  1. ??文件路径写错了??(试试用绝对路径C:/Users/桌面/日记.txt
  2. ??忘记指定编码格式??(加上encoding='utf-8'参数)
  3. ??读完了不关门??(用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直接读取字符串/列表编码转换、分割处理
csvcsv模块二维表处理分隔符、特殊字符
jsonjson模块嵌套字典格式校验、类型转换
通用pandas库DataFrame适合复杂数据分析场景

??五、过来人的血泪经验??
干了五年数据分析的老油条想说几句掏心窝子的话:

  1. ??路径处理用pathlib??,比字符串拼接靠谱一万倍
  2. ??看见中文就加编码参数??,utf-8和gbk换着试试
  3. ??大文件别一次性读取??,用生成器逐行处理才是王道
  4. ??异常捕获不能少??,try-except套上保平安

最后说句实在的,文件读取这东西就像学游泳,光看教程不下水永远学不会。多写多报错,见得坑多了自然就成高手了。记住,报错信息是你的好朋友,它说啥你就修啥,修着修着突然就开窍了!

本文由嘻道妙招独家原创,未经允许,严禁转载