#在一个文件夹内存放着几个纯英文文本,统计其中出现次数最多的单词
import os
import re
f_dir='E:/vscode/code/testwork/txtfile'
f_list=os.listdir(f_dir)
List=[]
dict={}
#传入文件名,返回文本文件路径
def get_f(name):
return f_dir+'/'+name
#传入文件路径,返回文件内文本(字符串
def open_f(fdir):
f = open(fdir,'r',encoding='UTF-8')
artical=f.read()
f.close()
return artical
#传入字符串,找出其中的单词统一小写,并以list形式添加到List中
def get_w(file):
word=re.findall('[a-zA-Z]+',file)
for i in word:
List.append(i.lower())
#传入一个list,将其排序后,提取每个单词与其出现的次数,以字典形式存放于dict
def get_c(w_list):
s_list=sorted(w_list)
i = 0
for i in range(0,s_list.__len__()-1):
count=s_list.count(s_list[i])
if(s_list[i]!=s_list[i+1]):
dict[s_list[i]]=count
if __name__ == "__main__":
art=''
for i in f_list:
f_path=get_f(i)
art=art+open_f(f_path)
get_w(art)
get_c(List)
#用max方法找出字典内values最大的值
highest=max(dict.values())
print('所有文件共有%d个单词'%List.__len__())
print('出现最多次的单词:')
#用最大值去提取与其相匹配的key,得到一个或多个出现次数最高的单词
print([k for k,v in dict.items() if v == highest])
print('总共出现了%d次'%highest)