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))