概述
一、错误1(代码如下):UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 2: illegal multibyte sequence
filepath=(r'C:/Users/Desktop/报文/报文.txt')
with open(filepath) as d:
q=d.read()
print(q)
原因分析:
a、windows系统下 文件编码不能正常解析,如修正文件编码保障程序正常运行则需忽略错误 with open(filepath,errors='ignore') as d ,但此处理后不能正常解析的部分打印出来是乱码,并没有解决实际问题。
b、解决如上困惑方法之一就是修改文件的编码格式,与当前代码解析规则支持的编码一致,
c、解决如上困惑方法之二 是 指定解码规则,指定open()的属性,open(‘filepath‘,encoding=’gb18030’,errors=‘ignore’);
d、一个文件中的编码格式不同问题,暂不知道怎么处理
二、错误2:unicodeescape codec can t decode bytes in position 2-3: truncated UXXXXXXXX escape
filepath=('C:UsersDesktop报文报文.txt')
with open(filepath,errors='ignore') as d:
q=d.read()
print(q)
原因分析:
a、以上代码是在windows环境下不能解析问题,导致问题原因为 文件路径 使用的斜杠’‘ 不是返斜杠'/', 导致解释器认为 此处不是路径的斜杠,
b、修正方法1 将路径中的斜杠改为 返斜杠,filepath=(’C:/Users/Desktop/报文/报文.txt')
c、修正方法2,将路径地址前加r 让解释器默认认为此处为 路径地址,filepath=(r'C:UsersDesktop报文报文.txt')
三、盗版方法总结
解决方法一:
-
with open('Word2Vec.txt','r',encoding='utf-8') as f:
-
data = f.read()
解决方法二:
-
with open('Word2Vec.txt','r',errors='igore') as f:
-
data = f.read()
解决方法三:
-
with open('Word2Vec.txt','rb') as f:
-
data = f.read()
建议1:当你了解文本中字符串是什么类型时,使用方法一。(‘utf-8’,‘gbk’,‘latin-1’)
建议2:当不需要读取文本中其他编码格式的字符时,可以忽略格式错误的字符的读取,使用方法二。
建议3:‘rb’模式不会将读取的字节转换为字符,所以我觉得方法三适用于大多数情况。
大师指正
最后
以上就是沉默吐司为你收集整理的python:读取文件内容解码 编码错误 UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xab in position 2: illegal的全部内容,希望文章能够帮你解决python:读取文件内容解码 编码错误 UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xab in position 2: illegal所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复