解决UnicodeDecodeError: ‘utf-8‘的通用方法

BUG场景:

使用pandas读取csv文件时出现UnicodeDecodeError: 'utf-8'的报错

df = pd.read_csv('test.csv')

原因分析:

文件编码问题,这里的解决思路是使用相应的encoding方法打开。


解决方案:

网上我个人没找到比较通用的解决方法,所以这里记录一下自己的解决方法。

import chardet

def find_encodeing(file_path, read_byte):

    with open(file_path, 'rb') as rawdata:
        result = chardet.detect(rawdata.read(read_byte))
    print(result)
    return result['encoding']

//打印如下
{'encoding': 'Windows-1252', 'confidence': 0.73, 'language': ''}

这里根据自己的文件大小去设置read_byte的大小,然后可以大致知道文件的编码格式,然后再用read_csv的方法打开就好了

df = pd.read_csv('test.csv', encoding='Windows-1252')

猜你喜欢

转载自blog.csdn.net/lzzzzzzm/article/details/123451762