问题描述:我在读取csv文件时 python报了如下错误
或者报了以下错误:UnicodeDecodeError: 'gbk' codec can't decode byte 0xb1 in position 5: illegal multibyte sequence
目录
问题引出:
我先创建的xlsx 或者 xls文件,然后再改成以csv为后缀的文件,最后在python里读取失败。
错误示范如下:
①直接通过新建方式->创建xls工作表 或者 xlsx工作表。
②
③直接进行改名:
执行后,python会报以下错误:UnicodeDecodeError: 'gbk' codec can't decode byte 0xb1 in position 5: illegal multibyte sequence
加入encoding='utf-8'也提示报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 0: invalid continuation byte
原因:这两者文件 直接进行转化的话,由于xlsx 或者 xls文件的格式与csv的格式编码不一样,导致解码错误。excel以ANSI格式打开,不会做编码识别。
解决方案如下:
1、更换创建方式
①创建文本txt:目的是为了后续改成csv文件后编码格式相同。
②修改后缀为csv
③
运行之后 未报错 成功解决√
2、直接打开原文件再另存为csv
打开创建的xlsx文件或者xls文件,选择另存为->文件类型选择“CSV(逗号分隔)”即可创建正常编译过的csv文件。
详细步骤如下:
①点击“文件”选择“另存为”再选择其他格式。(或直接快捷键F12进行文件另存为)
②文件类型选择CSV即可
以上是本人的总结经验,如有错误请批评指正!
来源地址:https://blog.csdn.net/qq_57329395/article/details/127876035