首页 > 代码库 > Python脚本实现基于文件存储的用户登录程序
Python脚本实现基于文件存储的用户登录程序
1 #!/usr/bin/env python 2 # coding:utf-8 3 4 """ 5 aim: 基于文件存储的用户登录程序(3次登录失败,锁定用户) 6 7 need: 8 a. 用户信息文件 9 b. 用户输入 10 11 logical: 12 a. 校验用户名合法情况 13 b. 校验用户锁定情况 14 c. 校验密码 15 d. 更新登录失败次数 16 e. 写入文件 17 18 sum: 19 a. 更新用户锁定次数不要直接操作文件,可先写入内存,程序退出之前写入文件 20 b. 逻辑判断情况 21 """ 22 23 # 读文件,获取用户信息 str 24 f1 = open(‘db‘, ‘r‘) 25 content = f1.read() 26 f1.close() 27 28 # 转换用户信息从str到list 29 user_data_list = content.split(‘\n‘) 30 user_detail_list = [] 31 32 # 将用户信息以字典的形式保存到列表 33 for user_info in user_data_list: 34 user_detail = user_info.split(‘|‘) 35 user_detail_list.append({ 36 ‘name‘: user_detail[0], 37 ‘pwd‘: user_detail[1], 38 ‘times‘: user_detail[2] 39 }) 40 41 print(""" 42 欢迎来到老男孩教育集团,请先登录! 43 """) 44 45 # 主程序退出标志位 46 flag = True 47 # 退出次数 48 exit_flag = 3 49 # main process 50 while flag: 51 user_name = input("用户名(退出[quit]): ") 52 # 退出判断 53 if user_name != ‘quit‘: 54 # 遍历用户信息列表 55 for item in user_detail_list: 56 # 判断用户名是否存在 57 if user_name == item[‘name‘]: 58 # 用户存在判断是否锁定 59 if int(item[‘times‘]) < exit_flag: 60 user_pwd = input("密码: ") 61 # 校验密码 62 if user_pwd == item[‘pwd‘]: 63 print(‘登录成功‘) 64 # 更新字典 65 item[‘times‘] = 0 66 # 更新while循环标志位 67 flag = False 68 # 退出for循环 69 break 70 else: 71 print(‘密码错误‘) 72 # 更新字典 73 item[‘times‘] = int(item[‘times‘]) + 1 74 # 退出for循环,继续输入用户名 75 break 76 else: 77 print("用户已经锁定") 78 break 79 else: 80 print(‘用户名不存在‘) 81 else: 82 flag = False 83 84 # 最后,将用户信息写入文件 85 # 处理字符串 86 result_info = ‘‘ 87 for item in user_detail_list: 88 item_str = ‘%s|%s|%s‘ % (item[‘name‘], item[‘pwd‘], item[‘times‘]) 89 if result_info.strip() == ‘‘: 90 result_info += item_str 91 else: 92 result_info = result_info + ‘\n‘ + item_str 93 94 # 写入文件 95 f2 = open(‘db‘, ‘w‘) 96 f2.write(result_info) 97 f2.close()
Python脚本实现基于文件存储的用户登录程序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。