Python读取CSV文件:UnicodeDecodeError: 'gbk' codec can't decode byte 0xba ....illegal multibyte sequence

本文介绍了解决Python读取CSV文件时遇到的UnicodeDecodeError错误的方法。通过设置正确的文件编码格式为UTF-8,成功解决了读取文件时出现的乱码问题。

Python读取CSV文件报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xba in position 8: illegal multibyte sequence


网上找了一些解决办法,说的要以二进制流读取文件,就加入rb,结果任然报错



最后找到篇文章说的加上不论是加r,rb,rt,都不得行,需要加上encoding='utf-8',发现果真解决了,不过不知道为什么在程序顶部加上utf-8不得行。



### 解决 Python 中 GBK 编码解码错误的方法 当遇到 `UnicodeDecodeError` 错误提示 `'gbk' codec can't decode byte... illegal multibyte sequence` 时,这表明尝试以 GBK 编码方式解析文件中的某些字节失败了[^1]。 #### 方法一:指定正确的编码格式 如果已知文件的实际编码不是 GBK,则应指明正确的字符集来打开文件。例如,许多现代文本文件采用 UTF-8 编码: ```python with open('example.txt', 'r', encoding='utf-8') as f: content = f.read() ``` #### 方法二:忽略或替换不可识别的字符 有时可能不知道确切的源编码,或者数据确实包含了不兼容的字符。此时可以设置参数让程序跳过这些异常情况: - **ignore**: 跳过错位并继续处理剩余部分; - **replace**: 使用替代标记(通常是问号 ? 或其他符号)代替无法转换的内容; 示例代码如下所示: ```python # 忽略错误 with open('example.txt', 'r', encoding='gbk', errors='ignore') as f: content = f.read() # 替换未知字符 with open('example.txt', 'r', encoding='gbk', errors='replace') as f: content = f.read() ``` #### 方法三:检测文件的真实编码 对于不确定编码类型的文件,可借助第三方库如 chardet 来自动探测其最有可能使用的字符集: 安装chardet模块可以通过pip命令完成: ```bash pip install chardet ``` 之后利用此工具分析目标文档: ```python import chardet rawdata = open('example.txt', 'rb').read() result = chardet.detect(rawdata) encoding = result['encoding'] print(f"The detected encoding is {encoding}") ``` 最后按照检测到的结果重新加载文件即可正常访问其中的数据。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值