需求是:针对三篇英文文章进行分析,计算出现次数最多的 10 个单词
创新互联建站是专业的清水网站建设公司,清水接单;提供网站设计制作、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行清水网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!逻辑很清晰简单,不算难, 使用 python 读取多个 txt 文件,将文件的内容写入新的 txt 中,然后对新 txt 文件进行词频统计,得到最终结果。
代码如下:(在Windows 10,Python 3.7.4环境下运行通过)
# coding=utf-8 import re import os # 获取源文件夹的路径下的所有文件 sourceFileDir = 'D:\\Python\\txt\\' filenames = os.listdir(sourceFileDir) # 打开当前目录下的 result.txt 文件,如果没有则创建 # 文件也可以是其他类型的格式,如 result.js file = open('D:\\Python\\result.txt', 'w') # 遍历文件 for filename in filenames: filepath = sourceFileDir+'\\'+filename # 遍历单个文件,读取行数,写入内容 for line in open(filepath): file.writelines(line) file.write('\n') # 关闭文件 file.close() # 获取单词函数定义 def getTxt(): txt = open('result.txt').read() txt = txt.lower() txt = txt.replace(''', '\'') # !"@#$%^&*()+,-./:;<=>?@[\\]_`~{|} for ch in '!"'@#$%^&*()+,-/:;<=>?@[\\]_`~{|}': txt.replace(ch, ' ') return txt # 1.获取单词 hamletTxt = getTxt() # 2.切割为列表格式,'' 兼容符号错误情况,只保留英文单词 txtArr = re.findall('[a-z\''A-Z]+', hamletTxt) # 3.去除所有遍历统计 counts = {} for word in txtArr: # 去掉一些常见无价值词 forbinArr = ['a.', 'the', 'a', 'i'] if word not in forbinArr: counts[word] = counts.get(word, 0) + 1 # 4.转换格式,方便打印,将字典转换为列表,次数按从大到小排序 countsList = list(counts.items()) countsList.sort(key=lambda x: x[1], reverse=True) # 5. 输出结果 for i in range(10): word, count = countsList[i] print('{0:<10}{1:>5}'.format(word, count))
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。