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

本文分享了Python处理文本文件编码问题的经验,介绍了如何使用ignorance参数来忽略乱码,以及如何通过手动测试确定文件编码方式,解决了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)

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

运行结果是:

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

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值