|
#!/usr/bin/python # -*- coding:utf-8 -*-
# 用户信息存放于DB文件
"""
linbin|axbc1kof|3
LinBin|axbc1kof|2
liuwenqian|axbc1kof|2
LinWenQian|axbc1kof|0
"""
# 打开文件并读取内容
option1 = open('DB','r') # 打开文件
data = option1.read() # 读取文件
option1.close() # 关闭文件
# 定义用户信息列表,初始化为空
user_info_list = []
# 用户信息转成列表
user_list = data.split('\n')
# 用户信息列表转成列表嵌入字典
for item in user_list:
temp = item.split('|')
user_dict = {
'name': temp[0],
'password': temp[1],
'times': temp[2]
}
user_info_list.append(user_dict)
# 循环控制标识符
flag = True
# 定义用户登录循环模块
while flag:
name = input('请输入用户名(退出Q|q):') # 提示用户输入用户名,退出输入Q|q
if name == 'Q' or name == 'q': # 用户输入Q|q,退出程序
break # 跳出while循环
else:
for item in user_info_list: # 循环用户信息列表
if name == item['name']: # 判断用户名
if int(item['times']) < 3: # 判断尝试次数是否小于3
password = input('请输入密码:') # 提示用户输入密码
if password == item['password']: # 判断密码
print('登录成功!')
item['times'] = 0 # 尝试次数更新为零
flag = False # 跳出while循环
break # 跳出for循环
else:
print('密码错误,请重新输入!') # 密码错误,提示用户重新输入
item['times'] = int(item['times']) + 1 # 尝试次数加1
break # 跳出for循环
else:
print('账号已锁定,请联系管理员!') # 尝试次数大于3,提示用户账号已锁定
flag = False # 跳出while循环
break # 跳出for循环
else:
print('用户名不存在,请重新输入') # 用户名不存在,提示用户重新输入
# 定义用户信息字符串,初始化为空
user_info_str = ''
# 用户信息转成字符串
for str in user_info_list:
item_str = '%s|%s|%s' % (str['name'],str['password'],str['times'])
if user_info_str == '':
user_info_str += item_str
else:
user_info_str = user_info_str + '\n' + item_str
# 打开文件并写入内容
option2 = open('DB','w') # 打开文件
option2.write(user_info_str) # 写入文件
option2.close() # 关闭文件 |
|
|