终于填了一个大坑:Python中如何处理《牛津高阶英汉词典》编码通不过问题(解决“UnicodeEncodeError”错误)

Python中的文本文件编码真是一个大坑,动不动就出现“UnicodeEncodeError”错误,研究了几天,今天又下载了官方的《Howto-Unicode》,终于找到了处理乱码的方法。要点就是忽略乱码,在解码中加入“ignorance”参数即可。另外,如果不知道文本文件用的是什么编码,可以用word读该文件,如果不是系统默认编码,就会出现选择编码窗口,通过在窗口手动测试,对于大约用什么编码就清楚了。答案就是这么简单,但是解决问题的过程却是大费周折,当然乐趣也在其中。

import re
#查找单词。【单词后往往会有空格,】所以加了\s
#括号十分关键,有括号和没有括号结果不同
#至于为什么,再研究
p=re.compile(r"\n([a-z]{2,40})\s?\r\n")

#将包含乱码的文件以二进制读出
fileOrin=open(r"files\Z.txt","rb")

#对文件进行解码
#最为关键的是增加"ignorance"参数
#此参数将忽略乱码
lines=fileOrin.read().decode("gb2312","ignorance")

#在字典中查找相关单词
result=re.findall(p,lines)
print(result)

#留下的问题:
#去重,后面解决吧

运行结果是:

今天弄清楚了这个问题,也很有获得感!

猜你喜欢

转载自blog.csdn.net/acflair/article/details/82904240