#!/usr/bin/env python#author:zhanglei #导入模块import getpassExit = [‘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
时间: 2024-10-19 04:57:25