lock = "D:/day1/lock.txt"#自己设置文件的位置lock为空白文档,lock为锁定文件
account = "D:/day1/account.txt"#账户要设置账号密码 例如:bob 1234
count = 0 #计数器
flag = 1 #标识器
lock_user = [] #锁定列表用户为空
f1 = open(lock,'r') #打开锁定文件
#.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。
lock_file = f1.readlines()
#关闭锁定文档
f1.close()
#循环锁定账户,将账户追加到lock_user列表中
for i in lock_file:
i = i.strip('\n')
lock_user.append(i)
#打开账户文件,并读取用户和密码
f2 = open(account,'r')
account_file = f2.readlines()
f2.seek(0)
f2.close()
while True:
username = input('username:')
password = input('password:')
#如果输入的账户在锁定用户列表中,退出循环;
if username in lock_user:
print('user {name} is lock!'.format(name=username))
break
else:
#否则计数器加count+1
count+=1
#如果count大于2,也就是输错三次,将账户添加到锁定账户中
if count>2:
print('密码输入错误三次')
with open(lock,'a') as f:
f.write("\n" + username)
break
else:
#如果count小于2,循环输入的用户名和密码,是否和账户文件里边的一样
for i in account_file:
n1,p1 = i.strip().split()
if username == n1 and password == p1:
print('welcome login!')
#如果账户密码一样,flag标识为True
flag = True
#如果输入账户密码和文件存储的不一样,则跳出本次循环
else:
continue
#如果flag标识为True,退出整个循环
if flag is True:
break