赞
踩
inFile=open('bank1.txt','r+',encoding='utf-8')
今天利用python读取文件内容时出现了这样的错误
'utf-8' codec can't decode byte 0xd0 in position 0: invalid continuation byte
我是直接新建的txt文件,内容如下:
信用等级,年龄,收入等级,教育程度
Bad,40,High,High school
Bad,50,High,High school
Bad,60,High,High school
Bad,70,High,High school
Bad,80,High,High school
Bad,90,High,High school
现在就把解决的办法记录一下:
1.直接把文件另存为,把编码格式改为utf-8,再次读取时问题就解决了。
2.删除encoding='utf-8’这个参数,其默认是采用locale.getpreferredencoding()返回的编码格式,我将其输出发现是cp936(CP936其实就是GBK)。
原因:
因为直接新建文本文件,文件的编码方式是ANSI的,也就是GBK编码。
ANSI:英文1个字节,汉字2个字节。共16384个字符。GBK编码
UTF-8:是Unicode一种压缩形式,英文1个字节,汉字3个字节。
所以说采用utf-8进行解码时会出现错误,而如果采用默认gbk,也就不会出现错误了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。