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

Python读取CSV文件时首元素出现奇怪字符0的问题求助

解决CSV读取时首元素出现前缀的问题

嘿,这个问题我之前也碰到过!你看到的其实是**UTF-8 BOM(字节顺序标记)**在搞鬼——Windows系统下用Excel或者记事本保存UTF-8格式的CSV时,经常会自动加上这个隐藏标记,而Python默认的open()函数打开文件时不会自动识别并忽略它,所以就把这个标记当成普通字符和你的0连在一起读出来了。

给你两个简单的解决方案:

方案一:用utf-8-sig编码打开文件

这是最直接的方法,utf-8-sig编码会自动识别并跳过UTF-8 BOM,修改后的代码如下:

import csv

matriceDist = [] 
# 重点是添加 encoding="utf-8-sig" 参数
file = csv.reader(open("distanceComm.csv", "r", encoding="utf-8-sig"), delimiter=";") 
for row in file: 
    matriceDist.append(row) 
print(matriceDist)

方案二:手动去除BOM(如果方案一不适用)

如果你的Python版本比较旧,或者文件编码有特殊情况,也可以手动读取文件内容后去除BOM:

import csv

matriceDist = [] 
with open("distanceComm.csv", "r", encoding="utf-8") as f:
    # 读取第一行并去除BOM标记
    first_line = f.readline().lstrip('\ufeff')
    # 将处理后的第一行和剩余内容重新组合
    content = first_line + f.read()
    # 用csv.reader读取处理后的内容
    file = csv.reader(content.splitlines(), delimiter=";")
    for row in file:
        matriceDist.append(row)
print(matriceDist)

另外,你也可以用记事本++这类工具打开你的CSV文件,查看它的编码类型(在菜单栏的「编码」选项里),确认是不是UTF-8带BOM的格式,这样能更精准地处理问题。

内容的提问来源于stack exchange,提问作者Adil Nouhail

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:05:46