详细题目在https://github.com/Yixiaohan/show-me-the-code上。此次是0006题,统计出一个文件夹下每个文本文件最为重要的词。
    总的思路是读取文件目录,将所有文件加至列表中,然后对列表每个文件中的文本进行过滤,使用字典计算词出现次数,然后对字典排序,将出现次数最多的词存到一个列表中,最后输出该列表。

    1. # -*- coding: UTF-8 -*-
    2. import os
    3. import re
    4. #将文件夹中的文件放入一个列表中,如果是子文件夹则忽略。
    5. def getFile(directory):
    6. list = os.listdir(directory)
    7. fileList = []
    8. for item in list:
    9. filepath = os.path.join(directory,item)
    10. if not os.path.isdir(filepath):
    11. fileList.append(filepath)
    12. return fileList
    13. #对于列表中的每个txt文件,都读取文件内容
    14. #然后使用正则表达式过滤除了英文字母外所有字符,然后将其切割为一个英文单词列表
    15. #接着将单词变为小写,使用字典来计算单词出现次数
    16. #最后将字典按大到小排序,然后取字典中的第一个英文单词,加入到一个列表中,最后返回该列表
    17. def Calculator(fileList):
    18. importantWord = []
    19. for temp in fileList:
    20. with open(temp, 'r') as file:
    21. word = re.sub(r'[^a-zA-Z]',' ',unicode(file.read().split()))
    22. word = word.split()
    23. word_dict = {}
    24. for item in word:
    25. item = item.lower()
    26. if not item in word_dict:
    27. word_dict[item] = 1
    28. else :
    29. word_dict[item] += 1
    30. word_dict = sorted(word_dict.iteritems(),key=lambda d:d[1],reverse=True)
    31. theWord, value = word_dict[0]
    32. importantWord.append(theWord)
    33. return importantWord
    34. #打印每个文本文件最重要的词
    35. list = getFile('txt')
    36. Calculator(list)
    37. for item in Calculator(list):
    38. print item