要求
輸入用戶名密碼正確,提示登錄成功,
輸入三次密碼錯誤,鎖定賬戶。
實現原理:
創建兩個文件accout,accout_lock
accout記錄用戶名,密碼
accout
root 1qazxsw2 wxp qwerty osadmin 123456
accout_lock記錄鎖定用戶,默認為空
代碼:
#!/use/bin/env python
#-*- coding:utf-8 -*-
import sys,os
import getpass
#os.system('clear')
i = 0
while i < 3:
name = input("請輸入用戶名:")
lock_file = open('account_lock','r+')
lock_list = lock_file.readlines()
for lock_line in lock_list:
lock_line = lock_line.strip('\n')
if name == lock_line:
sys.exit('用戶 %s 已經被鎖定,退出' % (name))
user_file = open('account','r')
user_list = user_file.readlines()
for user_line in user_list:
(user,password) = user_line.strip('\n').split( )
if name == user:
j = 0
while j < 3:
#passwd = getpass.getpass('請輸入密碼:')
passwd = input('請輸入密碼:')
if passwd == password:
print("用戶%s登錄成功" % name)
sys.exit(0)
else:
if j != 2:
print("用戶 %s 密碼錯誤,請重新輸入,還有 %d 次機會" % (name,3 - j ))
j += 1
else:
lock_file.write(name + '\n')
sys.exit('用戶 %s 達到最大登錄次數,將被鎖定並退出' % name)
else:
pass
else:
if i != 2:
print('用戶名%s 不存在,請重新輸入,還有 %d 次機會' % (name,3 - i))
i += 1
else:
sys.exit("用戶 %s 不存在,退出" % name)
lock_file.close()
user_file.close()
