要求,通过用户名密码登录,登录错误3次,锁定用户名

 # coding=utf-8
# Author: RyAn Bi import os, sys #调用系统自己的库 accounts_file = 'E:\\homework\\user.txt' # 存放用户名密码的位置
lock_file = 'E:\\homework\\lock.txt' #存放锁定用户名的位置
print('accounts_file:', accounts_file)
'''
temp1 = open(accounts_file,'a') #a为加入
temp1.write('bjb,123'+'\n')
temp1.close() #写入用户名密码的功能,在登录的时候不用
'''
user = open(accounts_file, 'r') #r为只读
# print('user:',user)
account_list = user.readlines() #逐行按分隔符阅读,readline是逐字节阅读
# print('account_list:',account_list)
user.close() #读取用户名和密码到内存中 user1 = open(lock_file, "r")
lock_list = user1.readlines()
# print(lock_list)
user1.close() #读取被锁定的用户名到内存中
loginSucess = False #默认将loginSucess置为假
while True:
username = input('username:').strip() #.strip是去除空格和\n
lockid = 0 #锁定用户标识值为零,不锁定
if len(username) != 0: #假如用户名不为空
for i in lock_list:
# i = i.split(' ') #i的分割符为空格
# print(i)
if username == i.strip():
print('your username %s is locked!' % username)
lockid = 1
break # 判断该帐号是否被锁定
for i in account_list:
# print(i)
if lockid == 1: #被锁定了禁止执行
break
else:
i = i.split(',')
# print(i)
if username == i[0]:
for x in range(3):
password = input('password:').strip()
if password == i[1].strip(): # 去掉空格和换行符
loginSucess = True
# print('you are right')
break #验证3次密码,成功了置 loginsuccess 为真
else:
print('%s,you input wrong password 3 times,your %s is locked!' % (username, username))
l = open(lock_file, 'w') #w只允许写入,以写入方式打开locklist
if l != "":
l = open(lock_file, 'a') #假如是locklist中有内容,用添加方式打开locklist,避免空白行
l.write(username + '\n') #将用户名写入
l.close()
lockid = 1
# view = open(lock_file)
# print(view.read())
if loginSucess is True:
print('welcome to system')
break
elif lockid == 0:
print('you input a wrong username,pls input again')
else:
# print('%s,you input wrong password 3 times,your %s is locked!' % (username, username))
break
else: # 用户名输入为空的时候
continue

pyhton学习,day1作业,用户名密码登录模块的更多相关文章

  1. Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作

    # -*- coding: gb2312 -*- #用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作 #作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.co ...

  2. day1作业:编写登录窗口一个文件实现

    思路: 1.参考模型,这个作业我参考了linux的登录认证流程以及结合网上银行支付宝等锁定规则: 1)认证流程参考的是Linux的登录:当你输入完用户名密码后再验证用户名是否存在用户是否被锁定,然后在 ...

  3. 用户名密码登录小程序及input与raw_input区别。

    一.此次程序需要实现: 1.设定固定的用户名密码 2.用户名密码输入正确打印登录正确信息 3.仅仅运行三次登录 二.本次使用的python版本为: Windows下版本号: C:\Users\dais ...

  4. cassandra根据用户名密码登录cqlsh

     修改conf目录下cassandra.yaml文件 authenticator: PasswordAuthenticator //将authenticator修改为PasswordAuthentic ...

  5. 学习笔记48_Memcache跟用户登录模块结合

    public interface ICacheWriter {  void AddCache(string key,object value, DateTime expDate);  void Add ...

  6. Spring Security之用户名+密码登录

    自定义用户认证逻辑 处理用户信息获取逻辑 实现UserDetailsService接口 @Service public class MyUserDetailsService implements Us ...

  7. SpringSecurity实现用户名密码登录(Token)

    传统的应用是将Session放在应用服务器上,而将生成的JSESSIONID放在用户浏览器的Cookie中,而这种模式在前后端分离中就会出现以下问题 1,开发繁琐. 2,安全性和客户体验差 3,有些前 ...

  8. 【Python练习】文件引用用户名密码登录系统

    一.通过txt文件引入用户名密码 1 #coding=utf-8 from selenium import webdriver #from selenium.common.exceptions imp ...

  9. 【转】IIS网站浏览时提示需要用户名密码登录-解决方法

    打开iis,站点右键----属性----目录安全性----编辑----允许匿名访问钩选 IIS连接127.0.0.1要输入用户名密码的解决办法原因很多,请尝试以下操作: 1.查看网站属性——文档看看启 ...

随机推荐

  1. CSS 伪类与伪元素

    CSS的元素选择器除了根据id(#).class(.).属性([ ])选取元素以外,还有很重要的一类,就是根据元素的特殊状态来选取元素.它们就是伪类和伪元素.跟id选择器.类选择器.属性选择器以及派生 ...

  2. Windows下Memcached的安装配置方法

    1.将第一个包解压放某个盘下面,比如在c:\memcached. 2.在终端(也即cmd命令界面)下输入 'c:\memcached\memcached.exe -d install' 安装. 3.再 ...

  3. 58. Length of Last Word最后一个单词的长度

    [抄题]: [暴力解法]: 时间分析: 空间分析: [优化后]: 时间分析: 空间分析: [奇葩输出条件]: [奇葩corner case]: "b a " 最后一位是空格,可能误 ...

  4. postfix配置积累(不断的积累)

    postfix 配置 1.mail_name 默认是Postfix.在收件人信头可以查看,如果不想让别人知道你是用postfix发的,则可以改成其它名字,如:postconf -e mail_name ...

  5. Reading——The Non-Designer's Design Book

    看这本书的时候真的好恨没有CS7在手><,不然我百度几张图来模拟下,体验下设计的快感. 人们总是很容易注意到在他们潜意识里存在的东西,比如说这个图:    我们很容易联想到微信,但是3   ...

  6. httpd和apache的区别

    今天要配置集成服务器环境 apache + tomcat + php + jsp + mysql  + sqlserver 去下载apache 发现有: apache_2.2.14-win32-x86 ...

  7. 设计模式06: Adapter 适配器模式(结构型模式)

    Adapter 适配器模式(结构型模式) 适配(转换)的概念无处不在:电源转接头.电源适配器.水管转接头... 动机(Motivation)在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象 ...

  8. 【Android学习】实现卡片式ListView

    效果: 主要是设置xml文件 两种状态下的item card_background.xml <?xml version="1.0" encoding="utf-8& ...

  9. c++基础之向量Vector

    首先和string一样要在开头 #include <vector> #include <string> 和string一样,也算是一种容器,而且同属于STL(standard ...

  10. HTML、CSS、JavaScript网页制作从入门到精通 (刘西杰) pdf扫描版彩色版​

    html.css.JavaScript网页制作从入门到精通中从基础知识开始讲起,如html的基本标记.文字与段落标记.表格标记.超链接标记……同时介绍了目前流行的web标准与css网页布局实例,以及基 ...