【python进行密码次数统计及排序】

需求

实现对一个如
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值