我是靠谱客的博主 沉默吐司,最近开发中收集的这篇文章主要介绍python:读取文件内容解码 编码错误 UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xab in position 2: illegal,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、错误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')

 

三、盗版方法总结

解决方法一:

 
  1. with open('Word2Vec.txt','r',encoding='utf-8') as f:

  2.     data = f.read()

解决方法二:

 
  1. with open('Word2Vec.txt','r',errors='igore') as f:

  2. data = f.read()

解决方法三:

 
  1. with open('Word2Vec.txt','rb') as f:

  2. 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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部