自己生成的 csv 可以用 utf-8-sig 写入,以便 excel 识别 utf-8 编码。拿到已有的 utf-8 csv 时,可以在 excel 的数据导入界面明确选择 utf-8。

用 csv.writer 输出带 BOM 的 CSV
保存为 export.py 并运行。用 csv.writer 处理字段中的逗号和引号。
import csv
rows = [["姓名", "商品"], ["小林", "笔记本, 蓝色"], ["小周", '便签 "A"']]
with open("orders.csv", "w", newline="", encoding="utf-8-sig") as file:
csv.writer(file).writerows(rows)
生成的 orders.csv 包含三行。商品名称中的逗号保留在同一个单元格。
立即学习“Python免费学习笔记(深入)”;
阿拉丁·Excel 数据工坊把「拿到一份脏乱的 Excel/CSV/TSV,想洗成干净可用的数据——却卡在装 Office、装 WPS、绑飞书、调付费 API、各种 pandas 依赖冲突」升级成一条纯本地零依赖工具链:多源导入(xlsx/csv/tsv)与逐列类型推断、整行/按列去重、trim 规整、缺失值填充(0/均值/前向)、透视表(一维/二维)、规则校验(非空/唯一/范围/正则/枚举)、类 VLOOKUP 合并两表、可视化数据体检报告(HTML 交互 + Markdown + JSON)。比 sk
读取文件头并回读字段
在同一目录运行下面的校验代码。
import codecs
import csv
from pathlib import Path
assert Path("orders.csv").read_bytes().startswith(codecs.BOM_UTF8)
with open("orders.csv", newline="", encoding="utf-8-sig") as file:
rows = list(csv.reader(file))
assert rows[0][0] == "姓名"
assert rows[1][1] == "笔记本, 蓝色"
print(rows)校验通过后,在 Excel 里确认表头和第一条数据都正确。
手动导入已有的 UTF-8 文件
在 Excel 里从“数据”选项卡选择“自文本/CSV”,在预览中选 UTF-8,再选择实际分隔符。可先用 Python 查看文件是否能按 UTF-8 解码。
from pathlib import Path
text = Path("orders.csv").read_text(encoding="utf-8-sig")
print(text.splitlines()[0])应显示可读的中文表头。若出现 UnicodeDecodeError,先确认来源编码再导入。

















