要求,通过用户名密码登录,登录错误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. Codeforces 1109C 线段树

    题意及思路:https://www.cnblogs.com/TinyWong/p/10400682.html 代码: #include <bits/stdc++.h> #define ls ...

  2. 常用Xcode文档位置,修改Xcode项目模板地址总结,以及常用地址,随时更新。

    Xcode文档 ~/Library/Developer/Shared/Documentation/DocSets or /Applications/Xcode.app/Contents/Develop ...

  3. Win10系统优化/设置脚本

    Win10系统优化/设置脚本 用了很长时间win10了,用的过程中,发现了一些问题,关于系统基本的优化,和个人的使用习惯设置等等,做成了一个脚本,可以一键设置win10的系统设置,结合DWS对Win1 ...

  4. Tensorflow训练结果测试

    代码参考(https://blog.csdn.net/disiwei1012/article/details/79928679) import osimport sysimport randomimp ...

  5. 面试题:MySQL性能调优——索引详解与索引的优化 没用

    ——索引优化,可以说是数据库相关优化.理解尤其是查询优化中最常用的优化手段之一.所以,只有深入索引的实现原理.存储方式.不同索引间区别,才能设计或使用最优的索引,最大幅度的提升查询效率! 一.BTre ...

  6. Hyperledger Fabric Orderer节点启动

    Orderer 节点启动通过 orderer 包下的 main() 方法实现,会进一步调用到 orderer/common/server 包中的 Main() 方法. 核心代码如下所示. // Mai ...

  7. eclipse——Maven插件创建java工程

    目录结构如下 注意默认JDK为1.5 更改默认JDK  方式一 右键工程 选中JRE1.5 Remove 双击JRE System Library 点击Finish 更改完成 方式二 配置maven ...

  8. Java String 常用类的使用方法

    public static void main(String[] args) { // TODO Auto-generated method stub /* * 使用for循环遍历数组 * int a ...

  9. MVC5中 在更新 Microsoft.Aspnet.Identity 后编译器错误

    环境:vs2013预览版chs,我试着创建vb.net web应用,从对话框中选择MVC和WebAPI.编译ok了.通过NuGet管理器更新了Microsoft.Aspnet.Identity.Cor ...

  10. Win7下:编译器错误信息: CS0016

    解决办法: 原因是由于系统目录下的Temp目录无相应的权限所致,具体操作如下: 来到C:/Windows目录,修改temp文件夹的属性. 在安全页设置IIS-IUSRS的权限,赋予修改.读取.写入等权 ...