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

Python3.6读取CSV文件时出现UTF-8解码错误求助

解决Python CSV读取时的UTF-8解码错误

嘿,我来帮你搞定这个CSV解码的问题~

你用Python 3.6写的这段读取CSV的代码:

import csv
with open('data1.csv', newline='') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

运行后碰到了这个头疼的错误,核心提示是:

'utf-8' codec can't decode byte 0x95 in position 11: invalid start byte

问题原因

这个错误的本质是:你的data1.csv文件不是用UTF-8编码保存的,但Python默认会用UTF-8去解码文件内容,所以遇到了它识别不了的字节(比如这里的0x95)就报错了。常见的非UTF-8编码有cp1252(Windows系统常用的编码,0x95在这个编码里是个特殊的项目符号)、GBK、GB2312等等。

解决方案

1. 指定正确的编码格式打开文件

你可以先试试用cp1252编码打开,毕竟0x95这个字节在这个编码里很常见,修改后的代码如下:

import csv
# 尝试用cp1252编码,不行的话可以换成gbk、gb2312再试
with open('data1.csv', newline='', encoding='cp1252') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

要是不知道文件到底是什么编码,可以用chardet库来检测:
先安装chardet:

pip install chardet

然后运行这段检测代码:

import chardet

with open('data1.csv', 'rb') as f:
    detection_result = chardet.detect(f.read())
    print(f"推测文件编码为:{detection_result['encoding']}")

拿到检测出的编码后,把它填到open()函数的encoding参数里就ok了。

2. 忽略解码错误(不推荐)

如果只是想快速查看文件内容,不在乎少量字符丢失,可以添加errors='ignore'参数,但这种方式会直接丢掉无法解码的字符,重要数据千万别这么用:

import csv
with open('data1.csv', newline='', encoding='utf-8', errors='ignore') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:29:23