文件操作之extract_name

三国演义的文档自己可以网上搜索下载,这里也提供一个备用地址:http://www.janpn.com/

下载后文档改名为sanguoyanyi.txt就好了

name.txt的内容如下图,随意选的几个人物:

提取人物名字,并统计出现的次数

 1 import re
 2 def find_item(hero):
 3     with open('sanguoyanyi.txt', encoding='utf-8') as f:
 4         data = f.read().replace('
', '')
 5         name_num = re.findall(hero, data)
 6         print('33[31:1m%s33[0m' % hero, len(name_num), '')
 7 # print语句用来检测运行效果,开始没有用len函数,发现没有统计次数,而是出现一次就赋值添加一次
 8 # 所以后来使用len(name_num)函数来计数
 9     return len(name_num)
10 
11 names_dict = {}
12 with open('name.txt', encoding='utf-8') as f:
13     for line in f:
14         names = line.split('|')
15         for n in names:
16             name_num = find_item(n)
17             names_dict[n] = name_num
18 names_sorted1 = sorted(names_dict.items(), key=lambda item:item[1], reverse=True)
19 print('按次数降序排列:', names_sorted1)
20 names_sorted2 = sorted(names_dict.items())
21 print('按姓名排列:', names_sorted2)
View Code
原文地址:https://www.cnblogs.com/gzj137070928/p/13723215.html