Pandas读取中文文本文件报错:python ‘utf-8‘ codec can‘t decode byte 0xe3 in position 0: unexpected end of data

在使用Pandas的read_csv读取中文文本文件时遇到'utf-8' codec错误,尝试了多种编码方式无果。通过检查文件编码并确认为'utf-8',发现错误出现在最后一行,因为该行数据不完整,缺少三列数据。填充缺失数据后,问题得到解决。关键在于理解错误信息并定位问题所在行。
摘要由CSDN通过智能技术生成

近日用pandas的read_csv读取中文文本文件时报错:python 'utf-8' codec can't decode byte 0xe3 in position 0: unexpected end of data。

看到错误以为是读取时encoding选择错误,某个二进制块无法用 'utf-8'读取,不应该选择 'utf-8'。于是将utf-8,gb2312,gb18030,gbk,utf-8-sig,cp936,big5等中文编码都试了一遍,还是没有解决错误。用编码ISO-8859-1读取没有报错,然而读取的是乱码。

要读取的文件,我事先知道是 'utf-8'。为了再次确认是否是 'utf-8',用如下代码进行了判断,结果竟然是none。用文本编辑器打开文件,将文件编码转换为 'utf-8',再次用如下代码进行判断,结果竟然还是none。

#方法一
import pandas as pd   

import os  

import chardet

def get_encoding(filename): 

    """ 

    返回文件编码格式,因为是按行读取,所以比较适合小文件

    """ 

    with open(filename,'rb') as f: 

        return chardet.detect(f.read())['encoding']

original_file = r"G:\data.txt"

print(get_encoding(original_file))
#结果是None

#方法二
from chardet.universaldetector import UniversalDetect
这个错误表示在读取csv文件时出现了问题,因为在第0个位置上的字节无法使用utf-8编码进行解码,导致了UnicodeDecodeError错误。 这个错误通常发生在csv文件的编码与使用的解码方式不匹配的情况下。解决这个问题的方法是使用正确的编码方式来读取csv文件。你可以尝试使用其他常见的编码方式,如gbk或utf-16来读取文件。如果你知道文件的真实编码方式,你可以直接指定该编码方式进行读取。另外,还可以尝试使用pandas的read_csv函数的encoding参数来指定编码方式。例如,可以将encoding参数设置为'gbk'或'utf-16'来读取文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [python3利用pandas读取csv文件的报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in ...](https://blog.csdn.net/m0_37936453/article/details/104646121)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [读取csv报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0x91 in position 15: invalid start ...](https://blog.csdn.net/weixin_42610010/article/details/129577243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值