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')