python Day1作业:用户三次登陆锁定
点击(此处)折叠或打开
-
#!/usr/bin/env python
-
# -*- coding:utf8 -*-
-
import os
-
import sys
-
#
-
-
userfile = file('user.txt', 'r+')
-
userlist = []
-
userdict = {}
-
#是否存在用户文件,有的话执行,没有的话退出.
-
if os.path.isfile("user.txt"):
-
pass
-
else:
-
print '没有定义用户文件!'
-
sys.exit
-
#userfile.readlines()
-
for userline in userfile:
-
useritem = userline.strip()
-
#生成系统用户列表
-
value_useritem = useritem.split(';')
-
#基本判断条件取出
-
value_username = value_useritem[0].strip()
-
value_passwd = value_useritem[1].strip()
-
lock_value = int(value_useritem[-1])
-
logincount_value = int(value_useritem[-2])
-
#生成用户名列表
-
userdict[value_username] = {'name':value_username, 'pwd':value_passwd, 'lockcount':logincount_value, 'locknum':lock_value}
-
-
flag = 'Ture'
-
counter = 0
-
while flag :
-
username = raw_input('请输入用户名:')
-
userpasswd = raw_input('密码:')
-
#判断是否是系统用户
-
if username not in userdict.keys() :
-
print '没有这个用户!'
-
break;
-
elif userdict[username]['locknum'] == 0 and userdict[username]['lockcount'] 3 :
-
if userpasswd == userdict[username]['pwd'].strip() :
-
print '欢迎登陆!!'
-
break
-
else:
-
counter += 1
-
userdict[username]['lockcount'] += 1
-
userfile = file('user.txt', 'w+')
-
for t in userdict.values():
-
wuserlist = [str(t['name']), str(t['pwd']), str(t['lockcount']), str(t['locknum'])]
-
# wuserlist = t.values()
- wuserlist_str = ';'.join(wuserlist)
-
#userfile.seek(0)
-
userfile.write(wuserlist_str + '\n')
-
if counter > 2 :
-
print '密码输入三次错误,退出.'
-
break;
-
else:
-
print '帐户已经被锁定!'
-
sys.exit('请联系管理解锁.')
-
continue;
- userfile.close()
格式:
用户名;密码;错误密码次数;管理员手动锁定账户
点击(此处)折叠或打开
- talen;tpass;0;0
- alex;apass;0;0
- bill;bpass;0;1
输入系统列表中没有的用户名与密码
[[email protected] python]$ ./day11.py
请输入用户名:nobody
密码:nobody
没有这个用户!
输入系统列表中被管理员手工禁用的账户
[[email protected] python]$ ./day11.py
请输入用户名:bill
密码:bpass
帐户已经被锁定!
请联系管理解锁.
系统用户密码输入错误3次,锁定账户
[[email protected] python]$ ./day11.py
请输入用户名:talen
密码:error
请输入用户名:talen
密码:error2
请输入用户名:talen
密码:error3
密码输入三次错误,退出.
[[email protected] python]$ ./day11.py
请输入用户名:talen
密码:tpass
帐户已经被锁定!
请联系管理解锁.
系统用户正常登陆
[[email protected] python]$ ./day11.py
请输入用户名:alex
密码:apass
欢迎登陆!!
系统用户配置已经更新.
[[email protected] python]$ cat user.txt
bill;bpass;0;1
alex;apass;0;0
talen;tpass;3;0