完美解决python中read_csv报错: 'utf-8'/'gbk' codec can't decode byte 0xb1 in position 0: invalid start byte

本文分享了在使用Python读取CSV文件时遇到的编码错误问题及解决办法。作者尝试了utf-8、gbk等多种编码方式均失败,最终通过检查CSV文件的实际编码解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天用Python读csv数据,因为编码方式不对一直无法读出,后来找了一个完美解决办法,专门写篇博客分享给大家!

错误如下:

其实很明显是编码方式错了,于是我加上了encoding,百度了一圈,utf-8, gbk等方式都报错。

解决办法:

用记事本打开csv文件,在下方可以看见编码方式 

然后加上对应的编码方式就ok啦~

### 解决 `pandas` 读取 CSV 文件时出现的 `UnicodeDecodeError` 当遇到 `UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position...` 错误时,这通常意味着文件的实际编码与默认使用的 UTF-8 编码不匹配。为了处理这种情况,可以尝试指定正确的编码方式来读取文件。 #### 方法一:指定不同的编码 如果不确定文件的具体编码,可以从常见的几种编码格式入手测试: ```python import pandas as pd try: df = pd.read_csv('file.csv', encoding='gbk') except UnicodeDecodeError: try: df = pd.read_csv('file.csv', encoding='latin1') except UnicodeDecodeError: df = pd.read_csv('file.csv', encoding='cp1252') ``` 上述代码依次尝试了 GBK、Latin1 和 CP1252 这三种常见编码[^1]。 #### 方法二:使用 chardet 库检测文件编码 对于未知编码的文件,还可以借助第三方库 `chardet` 来自动探测文件编码: ```python import chardet rawdata = open('file.csv', 'rb').read() result = chardet.detect(rawdata) encoding = result['encoding'] df = pd.read_csv('file.csv', encoding=encoding) ``` 这种方法能够更智能地识别文件的真实编码并据此加载数据[^2]。 #### 方法三:忽略或替换非法字符 有时即使指定了正确编码仍会碰到个别无法解析的字节序列,在这种情况下可以选择跳过这些异常部分继续执行操作: ```python df = pd.read_csv('file.csv', errors='ignore') # 或者使用 'replace' ``` 此选项允许程序在遇到不可解码字符时不抛出异常而是采取相应措施绕过它们[^3]。 通过以上任意一种方法应该能有效解决由于编码差异引发的 `UnicodeDecodeError` 问题。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值