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()