You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取CSV文件表头出现无法识别特殊字符的原因是什么?

问题根本原因

你看到的表头前缀乱码是**UTF-8 BOM(字节顺序标记)**解码异常的直接表现:

  • 部分Windows平台的编辑器(如旧版Excel)导出UTF-8编码的CSV文件时,会在文件最开头额外插入3个不可见的特殊字节0xEF 0xBB 0xBF,也就是UTF-8 BOM,用于标识文件的编码类型为UTF-8。
  • 你当前的代码调用open()打开文件时没有指定对应解码格式,Python会将这3个特殊字节当做普通文本内容解码,最终就会显示为乱码,并拼接到第一个表头字段的开头。
修复方案

推荐两种成熟的解决方式,无需手动移除字符:

  1. 打开文件时指定编码为utf-8-sig,Python会自动识别并移除开头的BOM标记,调整后的代码如下:
import csv

def readCSV(filename, begin_date="01/07/2020", end_date="30/09/2020"):
    # 新增encoding参数指定带BOM的UTF-8解码规则
    file = open(filename, encoding='utf-8-sig')
    csvreader = csv.reader(file)
    header = next(csvreader)
    # 后续数据读取逻辑保持不变即可

if __name__ == '__main__':
    raw_load_data = readCSV("Total_load_2020.csv")
    raw_forecast_data = readCSV("Total_load_forecast_2020.csv")
  1. 若需要兼容多编码场景,也可以在读取表头后手动移除BOM:对第一个表头字段调用.lstrip('\ufeff')即可清除BOM对应的Unicode字符。

内容的提问来源于stack exchange,提问作者Xu Siyuan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:15:04