csv模块:读写表格数据、适配Excel打开、乱码解决实战
博客导语
csv是轻量表格格式,无需安装第三方库,原生支持Excel直接打开,适合万行以内离线报表。本文讲解表头读写、批量写入、Excel打开乱码、特殊逗号数据处理。
一、csv基础写入(列表数据)
import csv # 单行写入 with open("user.csv","w",encoding="utf-8",newline="") as f: writer = csv.writer(f) writer.writerow(["姓名","年龄","性别"]) writer.writerows([["张三",20,"男"],["李四",22,"女"]])关键参数newline="":禁止自动换行,规避csv多余空行
二、字典读写(业务最常用,表头自动匹配)
# 字典写入,自动识别表头 header = ["姓名","年龄"] data = [{"姓名":"王五","年龄":19}] with open("user.csv","w",encoding="utf-8",newline="") as f: writer = csv.DictWriter(f,fieldnames=header) writer.writeheader() writer.writerows(data)三、Excel打开csv中文乱码解决方案
原因:Excel默认读取GBK编码,utf-8带BOM标识无法识别,修改编码为utf-8-sig即可完美兼容
四、特殊数据避坑
单元格内部自带逗号、换行符,csv模块会自动转义,无需手动处理,比手动拼接字符串安全百倍
