项目来源:show-me-the-code
4号题目:任一个英文的纯文本文件,统计其中的单词出现的个数。
分析:这道题目我个人觉得开放性很大,可以用很多种方式去做,我个人因为目前在做爬虫,使用正则表达式会多一些,就写了一个正则表达式的解析方法。主要是因为这样简洁一点。
上代码:
import re
with open('4.txt', 'r', errors='ignore') as f:
data = f.read()
p = re.compile(r'(\w+)')
items = re.findall(p, data)
print(len(items))
for i in items:
print(i)
效果图:
这个题目其实很简单,但是不知道什么原因,我一开始读取文本时,始终会出现一个错误或者说是异常UnicodeDecodeError: 'gbk' codec can't decode byte 0x9d in position 2114: incomplete multibyte sequence
,导致这个异常的原因是:我没有在open
方法里添加errors='ignore'
参数。我个人的理解是保存的英文文本因为一些原因导致编码时多了一些东西,导致出错。虽然不明白具体的原因,但觉得可能和操作系统有关。
以上。