1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 利用python从《牛津高阶英汉词典》里提取单词列表

利用python从《牛津高阶英汉词典》里提取单词列表

时间:2023-12-12 14:24:23

相关推荐

利用python从《牛津高阶英汉词典》里提取单词列表

从网上下载的《牛津高阶英汉词典》是以文本的形式存在于A-Z的文件夹中。每个文件夹有多个文件。如图:

文件夹A里的文件有:

其它文件夹基本也是多个文件。

基本思路是通过文件夹遍历找出所有文件。然后对这些文件逐个应用正则表达式进行搜索,提取单词列表。经过前面若干天的学习,填了一个又一个坑,现在可以给出一个比较成熟的代码了。

import rep=pile(r"\b[-a-z]{2,40}\s?\r\n")#遍历文件夹下所有子文件夹即文件,#返回包括子文件夹在内的全部文件def list_all_files(dir):import os.path_files=[]list=os.listdir(dir)for i in range(0,len(list)):path=os.path.join(dir,list[i])if os.path.isdir(path):_files.extend(list_all_files(path))if os.path.isfile(path):_files.append(path)return _files#用来进行单词计数count=0files=list_all_files("oxford-dict")with open("listofwords.txt","w") as f:for file in files:f.write("\n"+file+"\n")with open(file,"rb") as fr:str=fr.read().decode("gbk","ignore")#别忘了“ignore”,此坑甚大。words=re.findall(p,str)#去除重复的单词word_remove_duplication=[]for word in words:if word not in word_remove_duplication:word_remove_duplication.append(word)#将单词写入文本for s in word_remove_duplication:f.write(s)count=count+1f.write("单词数量大约是:{}".format(count))

输出文本如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。