import time
import os
user_info = {
'mac': {'pwd': '123', 'count': 0, 'locked': False},
'tank': {'pwd': '321', 'count': 0, 'locked': False},
'egon': {'pwd': '222', 'count': 0, 'locked': False},
} tag = True
inp_count = 0
while tag:
# 输入用户名
username = input('请输入用户名')
# 判断用户是否在用户列表中
if username in user_info:
print(f'[{username}]用户存在')
# 判断用户登录信息locked是否为True 判断文件中是否有该用户锁定文件
if user_info.get(username).get('locked') or os.path.exists('%s.txt' % (username,)):
print('当前用户需要锁定5分钟')
time.sleep(20) # 用户锁定时间
user_info.get(username)['clocked'] = False # 用户解锁后,将用户信息中locked值改为False
print('用户解锁成功')
# 用户解锁后删除文件
os.remove('%s.txt' % (username,))
inp_count = 0 # 重置用户输入次数
# 判断用户输入次数
while inp_count < 3:
password = input('请输入用户密码')
# 判断用户密码是否输入正确
if password == user_info.get(username).get('pwd'):
print('登录成功')
tag = False
break
else:
print('用户名或密码错误')
# 用户输入错误,输入次数 + 1
inp_count += 1
# 当用户密码输错三次时,锁定用户
if inp_count == 3:
print(f'[{username}]已被锁定')
user_info.get(username)['locked'] = True # 用户被锁定后,将用户信息中locked值改为True
# 将被锁定用户信息写入文件
with open('%s.txt' %(username,), 'w', encoding='utf-8') as f:
f.write('当前用户%s被锁定' % (username,))
break
else:
print('用户不存在')
04-26 16:32
查看更多