#在一个文件夹内存放着几个纯英文文本,统计其中出现次数最多的单词
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)