用户输错三次密码锁定用户名

#!/usr/bin/env python
#author:zhanglei

#导入模块
import getpass
Exit = ['q','quit']

#定义一个空列表
lock = []
username = input("input username: ").strip()


#已只读的方式打开lock黑名单文件
lock_file = open('lock.txt','r').readlines()
for i in lock_file:
line = i.strip('\n')
lock.append(line) #从文件读取的内容添加到lock列表内



#判断输入的用户名是否在lock黑名单里
if username in lock:
print ("\033[31;5m账户已被锁定,请联系管理员!\033[0m")
else:
counter = 0
while True:
counter +=1
f = open('user.txt','r').readlines() #已只读的方式打开user文件
password = getpass.getpass() #已密文的方式输入密码
break_flag = False #加入break_flag进行判断是否为真,为真则跳出循环
if password in Exit:break #判断用户输入的密码是否在Exit列表内,在则跳出
for I in f:
lists = I.strip().split() #将文件转换为列表
if username == lists[0] and password ==lists[1]: #分别判断用户名密码是否和lists列表内的第一第二个元素相等
print ("\033[35;2mWelcome Login...\033[0m")
break_flag = True
break
else:
continue
if break_flag is True: #判断break_flag是否为真
break
else:
if len(password) ==0: #如果password变量的字符长度为0则跳出本次循环继续下一次循环,同时把counter值设置为0
counter =0
continue
else:
if counter ==3: #如果密码输入次数为3,则锁定用户名
f = open('lock.txt','a') #已追加的方式打开lock文件
f.write(username+'\n')
f.flush()
f.close()
print ("\033[31;5m输入的次数已超三次,请解锁\033[0m")
break
posted @ 2016-05-12 13:50  Jackie207  阅读(312)  评论(0编辑  收藏  举报