1 import os # 导入python自带库的模块 2 import sys # 导入python自带库的模块 3 import getpass # 导入python自带库的模块 4 lock_file = 'E:account_lock.txt' # 定义是否锁定状态的变量 5 user_file = 'E:account.txt' # 定义帐号密码变量文件 6 u = 0 # 循环初始化 7 while u < 3: 8 name = input("请输入用户名:") # 用input 给name赋值 9 lock_file = open('E:account_lock.txt','r+') # 打开锁定文件,权限是读取更新 10 lock_list = lock_file.readlines() 11 for lock_line in lock_list: 12 lock_line = lock_line.strip('\n') # 使用.strip()的方法去点换行符 13 if name == lock_line: 14 print('用户 %s 已经锁定,请联系您的系统管理员' % name) 15 sys.exit(1) 16 user_file = open('E:account.txt','r') # 打开account文件,权限是读取更新 17 user_list = user_file.readlines() # 使用.readlines的方法逐行读取account文件 18 for user_line in user_list: # 使用for循环读取account的内容 19 (user,passwd) = user_line.strip('\n').split() # 用户名密码输入次数超过3次的用户添加到account_lock文件中 20 if name == user: 21 j = 0 22 while j < 3: 23 password= getpass.getpass('请输入密码') 24 if password == passwd: 25 print('欢迎登陆管理平台,用户%s' %name) 26 sys.exit(0) 27 else: 28 if j != 2: 29 print('用户%s密码错误,请从新输入,还有%d次机会'%(name,2 -j)) 30 j += 1 31 else: 32 lock_file.write(name + '\n') 33 sys.exit('用户 %s 达到最大登陆次数,将被锁定并退出' % name) 34 else: 35 pass 36 else: 37 if u != 2: #i=2时,是最后一次机会,不用在提示还剩余0次机会了 38 print('用户%s 不存在,请从新输入,还有%d 次机会' %(name,2 - u)) 39 u += 1 40 else: 41 sys.exit('由于您的错误输入,程序已经退出,请从新运行') 42 lock_file.close() 43 user_file.close()