python Day1作业:用户三次登陆锁定

简介: 点击(此处)折叠或打开 #!/usr/bin/env python # -*- coding:utf8 -*- import os import...



点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf8 -*-
  3. import os
  4. import sys
  5. #

  6. userfile = file('user.txt', 'r+')
  7. userlist = []
  8. userdict = {}
  9. #是否存在用户文件,有的话执行,没有的话退出.
  10. if os.path.isfile("user.txt"):
  11.     pass
  12. else:
  13.     print '没有定义用户文件!'
  14.     sys.exit
  15. #userfile.readlines()
  16. for userline in userfile:
  17.     useritem = userline.strip()
  18.     #生成系统用户列表
  19.     value_useritem = useritem.split(';')
  20.     #基本判断条件取出
  21.     value_username = value_useritem[0].strip()
  22.     value_passwd = value_useritem[1].strip()
  23.     lock_value = int(value_useritem[-1])
  24.     logincount_value = int(value_useritem[-2])
  25.     #生成用户名列表
  26.     userdict[value_username] = {'name':value_username, 'pwd':value_passwd, 'lockcount':logincount_value, 'locknum':lock_value}

  27. flag = 'Ture'
  28. counter = 0
  29. while flag :
  30.     username = raw_input('请输入用户名:')
  31.     userpasswd = raw_input('密码:')
  32.     #判断是否是系统用户
  33.     if username not in userdict.keys() :
  34.         print '没有这个用户!'
  35.         break;
  36.     elif userdict[username]['locknum'] == 0 and userdict[username]['lockcount'] 3 :
  37.         if userpasswd == userdict[username]['pwd'].strip() :
  38.             print '欢迎登陆!!'
  39.             break
  40.         else:
  41.             counter += 1
  42.             userdict[username]['lockcount'] += 1
  43.             userfile = file('user.txt', 'w+')
  44.             for t in userdict.values():
  45.                 wuserlist = [str(t['name']), str(t['pwd']), str(t['lockcount']), str(t['locknum'])]
  46.             # wuserlist = t.values()
  47.                 wuserlist_str = ';'.join(wuserlist)
  48.                 #userfile.seek(0)
  49.                 userfile.write(wuserlist_str + '\n')
  50.             if counter > 2 :
  51.                 print '密码输入三次错误,退出.'
  52.                 break;
  53.     else:
  54.         print '帐户已经被锁定!'
  55.         sys.exit('请联系管理解锁.')
  56.     continue;
  57. userfile.close()
user.txt
格式:
用户名;密码;错误密码次数;管理员手动锁定账户

点击(此处)折叠或打开

  1. talen;tpass;0;0
  2. alex;apass;0;0
  3. bill;bpass;0;1
执行过程:
输入系统列表中没有的用户名与密码
[t@bjb0541 python]$ ./day11.py  
请输入用户名:nobody
密码:nobody
没有这个用户!

输入系统列表中被管理员手工禁用的账户
[t@bjb0541 python]$ ./day11.py  
请输入用户名:bill
密码:bpass
帐户已经被锁定!
请联系管理解锁.

系统用户密码输入错误3次,锁定账户
[t@bjb0541 python]$ ./day11.py  
请输入用户名:talen
密码:error
请输入用户名:talen
密码:error2
请输入用户名:talen
密码:error3
密码输入三次错误,退出.
[t@bjb0541 python]$ ./day11.py  
请输入用户名:talen
密码:tpass
帐户已经被锁定!
请联系管理解锁.

系统用户正常登陆
[t@bjb0541 python]$ ./day11.py  
请输入用户名:alex
密码:apass
欢迎登陆!!

系统用户配置已经更新.
[t@bjb0541 python]$ cat user.txt
bill;bpass;0;1
alex;apass;0;0
talen;tpass;3;0








目录
相关文章
|
6月前
|
机器学习/深度学习 人工智能 算法
【代数学作业1完整版-python实现GNFS一般数域筛】构造特定的整系数不可约多项式:涉及素数、模运算和优化问题
【代数学作业1完整版-python实现GNFS一般数域筛】构造特定的整系数不可约多项式:涉及素数、模运算和优化问题
124 0
|
6月前
|
机器学习/深度学习 人工智能 算法
【代数学作业1-python实现GNFS一般数域筛】构造特定的整系数不可约多项式:涉及素数、模运算和优化问题
【代数学作业1-python实现GNFS一般数域筛】构造特定的整系数不可约多项式:涉及素数、模运算和优化问题
114 0
|
6月前
|
Python
Python编程作业五:面向对象编程
Python编程作业五:面向对象编程
67 1
|
2月前
|
Web App开发 存储 安全
Python编写脚本,打开浏览器输入网址,自动化登陆网站
Python编写脚本,打开浏览器输入网址,自动化登陆网站
60 4
|
3月前
|
Shell 网络安全 数据安全/隐私保护
使用 Python 远程登陆服务器的最佳实践
使用 Python 远程登陆服务器的最佳实践
|
6月前
|
数据安全/隐私保护 Python
python作业
python作业
38 2
|
6月前
|
存储 传感器 Python
Python编程作业四:文件操作
Python编程作业四:文件操作
78 0
|
6月前
|
存储 算法 Python
Python编程作业一:程序基本流程
Python编程作业一:程序基本流程
59 0
|
6月前
|
Python
python实现学生信息管理系统(附源码 可供大作业或练习使用)
python实现学生信息管理系统(附源码 可供大作业或练习使用)
644 2
python实现学生信息管理系统(附源码 可供大作业或练习使用)
|
6月前
|
API Python
基于Python PYQT5的GUI亚丁号辅助登陆界面
基于Python PYQT5的GUI亚丁号辅助登陆界面
46 2