def get_file_words(path, num): """ 用Python实现统计一篇英文文章内每个单词出现频率,并返回出现频率最高的10个单词及其出现次数,并解答以下问题 1)创建文件对象f后,解释f的readlines和xreadlines方法的区别? 2)追加需求,引号内元素需要算作一个单词,如何实现? :return: """ list_words = [] obj_file = open(path, "r") text = obj_file.read() obj_file.close() # 引号内元素需要算作一个单词,先用引号切分,偶数再划分单词,奇数直接算作一个单词加入列表 list_text = text.split('"') for i in range(0, len(list_text), 2): # list_words += re.split("[0-9\W]+", list_text[i]) if i+1 < len(list_text): list_words.append(list_text[i+1]) obj_count = Counter(list_words) result = obj_count.most_common(num) #print(list_words) return result if __name__ == '__main__': print(get_file_words("aa.txt", 10))