具体需求
- 输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后锁定
一、 实现思路
1.读取已注册的用户名和密码:使用re包读取文件,再使用正则表达式提取出用户名和密码,注意这里提取出来的用户名和密码是列表形式,需要将其转换为字符串。具体代码如下:
1 with open('E:\selenium-python测试项目\loginuser.txt', 'r', encoding='utf-8', newline='') as f: #读取已注册的用户信息 2 for line in f: 3 _username = "".join(re.findall('(.*):',line)) # 正则表达式截取文档中的用户名,并转化为str类型 4 _userpassword = "".join(re.findall(':(.*) ',line))
2:存储密码输入错误的用户名,并统计用户名密码输错的次数:使用re包存储数据到指定文件中,然后打开存储的文件使用正则表达式完全匹配用户名,进行统计。具体代码如下:
将密码输入错误的用户名存储到指定的文件中
1 with open('E:\selenium-python测试项目\lockuser.txt', 'a') as f: # 打开lockuser.txt,如果文件不存在,创建该文件。 2 f.write(username + '\n', ) # 把变量username写入lockuser.txt。这里username必须是str格式,如果不是,则可以转一下。
统计登录账号密码出错次数
1 locktxt = open("E:\selenium-python测试项目\lockuser.txt", "r").read() # 打开用户登录错误记录文件 2 error_number = len(re.findall(username+'\n', locktxt))# 统计密码错误次数
二、具体代码
1 # Author:dengxiao 2 import re 3 print("*******可用账号dx-dx11,密码全部为123") 4 count = True 5 while count : 6 username = input("用户名:") 7 userpassword = input("密码:") 8 locktxt = open("E:\selenium-python测试项目\lockuser.txt", "r").read() # 打开用户登录错误记录文件 9 error_number = len(re.findall(username+'\n', locktxt))# 统计密码错误次数 10 if error_number >= 3: 11 print("{name}密码已输错三次,已被锁定请联系管理员".format(name=username)) 12 continue 13 else: 14 with open('E:\selenium-python测试项目\loginuser.txt', 'r', encoding='utf-8', newline='') as f: #读取已注册的用户信息 15 for line in f: 16 _username = "".join(re.findall('(.*):',line)) # 正则表达式截取文档中的用户名,并转化为str类型 17 _userpassword = "".join(re.findall(':(.*) ',line)) 18 if username == _username and userpassword == _userpassword: 19 print("{name}登陆成功".format(name=username)) 20 count = False 21 break 22 else: 23 continue 24 if count : 25 print("账号或密码错误") 26 with open('E:\selenium-python测试项目\lockuser.txt', 'a') as f: # 打开lockuser.txt,如果文件不存在,创建该文件。 27 f.write(username + '\n', ) # 把变量username写入lockuser.txt。这里username必须是str格式,如果不是,则可以转一下。