需求
实现对一个如
password.txt:
1 admin 123456
2 abc 666666
3 rookie 123456
4 jack 888888
6 aaa 123456
7 bbb 666666
8 ccc 888888
9 ddd ddddddddd
10 eee aaaaaaa
11 fff 123456
12 ggg 666666
的用户信息进行密码统计并排序。
实现
def save_password(password_path):
print('StartCountPassword...')
# 密码列表
password_list = []
# 读取文件,并将密码切割到一个列表
with open(password_path, 'r+') as f:
for line in f:
line2 = line.strip('\n')
user_list = line2.split(' ')
# 将密码存入一个列表,0为用户名,1为账号,2位密码
password_list.append(user_list[2])
# 将密码排序
password_list.sort()
# 利用嵌套列表统计每个密码出现次数
i = 0
password_count_list = []
while i < len(password_list) - 1:
list2 = []
count = 1
while password_list[i] == password_list[i + 1]:
count += 1
i += 1
list2.append(password_list[i])
list2.append(count)
password_count_list.append(list2)
i += 1
# 按密码出现次数排序
password_count_list.sort(key=lambda x: x[1], reverse=True)
with open('count_done.txt', 'w') as f:
for i in password_count_list:
f.write(i[0] + ' ' + str(i[1]) + '\n')
print('CountPasswordDown!')
# 传入密码文件路径
save_password('password.txt')
运行
StartCountPassword...
CountPasswordDown!
此路径下生成count_done.txt:
123456 4
666666 3
888888 2
aaaaaaa 1