本文主要是介绍第 0006 题: 你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认为每篇日记最重要的词。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
import os
# os 模块提供了非常丰富的方法用来处理文件和目录。详细方法请参考菜鸟教程。
import re
re模块为正则表达式模块def findWord(DirPath):
# 定义 ******函数if not os.path.isdir(DirPath):# os.path.isdir() 判断路径是否为目录returnfileList = os.listdir(DirPath)# os.listdir(DirPath) 返回Dirpath指定的文件夹包含的文件或文件夹的名字的列表。reObj = re.compile('\b?(\w+)\b?')compile 函数用于编译正则表达式,生成一个正则表达式对象,供 match() 和 search() 这两个函数使用for file in fileList:# 遍历文件列表filePath = os.path.join(DirPath, file)# 把目录和文件名合成一个路径if os.path.isfile(filePath) and os.path.splitext(filePath)[1] == '.txt':# 判断路径是否为文件 并且分割路径,返回路径名和文件扩展名的元组with open(filePath) as f:data = f.read()# 读取文件内容words = reObj.findall(data)wordDict = dict()for word in words:word = word.lower()# 所有内容小写if word in ['a', 'the', 'to',‘and’, ‘but’, 'or']:continueif word in wordDict:wordDict[word] += 1else:wordDict[word] = 1ansList = sorted(wordDict.items(), key=lambda t: t[1], reverse=True)print('file: %s->the most word: %s' % (file, ansList[1]))if __name__ == '__main__':findWord('source/0006')
这篇关于第 0006 题: 你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认为每篇日记最重要的词。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!