1)输入用户名密码
2)认证成功后显示欢迎信息
3)输错三次后锁定
#!/usr/local/bin/python3
# Author: Jonas Mao
import os
import sys
import getpass
os.system(‘clear‘) #清理屏幕(可选)
user_limit = 0
while user_limit < 3:
username = input(‘请输入您的用户名:‘)
lock_file = open(‘lock_list‘,‘r+‘)
lock_file2 = lock_file.readlines()
for lock in lock_file2:
lock = lock.strip(‘\n‘)
if username == lock:
print(‘用户%s已经锁定,请联系系统管理员!‘ % username)
sys.exit(1)
user_file = open(‘user_list‘,‘r+‘).readlines()
for user in user_file:
(user,passwd) = user.strip(‘\n‘).split() #分别获取帐号和密码信息
if username == user:
passwd_limit = 0
while passwd_limit < 3:
password = getpass.getpass(‘请输入您的密码:‘) #输入密码时不可见
if password == passwd:
print(‘欢迎用户%s登录系统!‘ %username)
sys.exit(0)
else:
if passwd_limit != 2:
print(‘用户%s的密码错误,请重新输入,还有%d次机会!‘ %(username,2-passwd_limit))
passwd_limit += 1
else:
lock_file.write(username + ‘\n‘)
lock_file.close()
sys.exit(‘用户%s已经锁定,请联系管理员!‘ % username)
else:
pass #当用户没匹配时,跳过并继续循环
else:
if user_limit != 2:
print(‘用户%s输入错误,请重新输入,还有%d次机会!‘ %(username,2-user_limit))
else:
sys.exit(‘错误输入导致程序退出,请重新运行!‘)
user_limit += 1