Python脚本实现基于文件存储的用户登录程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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脚本实现基于文件存储的用户登录程序的主要内容,如果未能解决你的问题,请参考以下文章

Python练习,模拟用户登录接口

通过 Python 脚本拒绝所有用户基于密码的 SSH 登录

python练习基于socket的FTP程序(仅支持单用户)

python之用户登录三次锁定

Python 基于Flask的Web开发用户登录 注册

python练习基于socket的FTP程序 v1.1.0(支持并发)