pyhton学习,day1作业,用户名密码登录模块
要求,通过用户名密码登录,登录错误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作业,用户名密码登录模块的更多相关文章
- Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作
# -*- coding: gb2312 -*- #用户名密码登录系统(MD5加密并存入文件)及对字符串进行凯撒密码加解密操作 #作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.co ...
- day1作业:编写登录窗口一个文件实现
思路: 1.参考模型,这个作业我参考了linux的登录认证流程以及结合网上银行支付宝等锁定规则: 1)认证流程参考的是Linux的登录:当你输入完用户名密码后再验证用户名是否存在用户是否被锁定,然后在 ...
- 用户名密码登录小程序及input与raw_input区别。
一.此次程序需要实现: 1.设定固定的用户名密码 2.用户名密码输入正确打印登录正确信息 3.仅仅运行三次登录 二.本次使用的python版本为: Windows下版本号: C:\Users\dais ...
- cassandra根据用户名密码登录cqlsh
修改conf目录下cassandra.yaml文件 authenticator: PasswordAuthenticator //将authenticator修改为PasswordAuthentic ...
- 学习笔记48_Memcache跟用户登录模块结合
public interface ICacheWriter { void AddCache(string key,object value, DateTime expDate); void Add ...
- Spring Security之用户名+密码登录
自定义用户认证逻辑 处理用户信息获取逻辑 实现UserDetailsService接口 @Service public class MyUserDetailsService implements Us ...
- SpringSecurity实现用户名密码登录(Token)
传统的应用是将Session放在应用服务器上,而将生成的JSESSIONID放在用户浏览器的Cookie中,而这种模式在前后端分离中就会出现以下问题 1,开发繁琐. 2,安全性和客户体验差 3,有些前 ...
- 【Python练习】文件引用用户名密码登录系统
一.通过txt文件引入用户名密码 1 #coding=utf-8 from selenium import webdriver #from selenium.common.exceptions imp ...
- 【转】IIS网站浏览时提示需要用户名密码登录-解决方法
打开iis,站点右键----属性----目录安全性----编辑----允许匿名访问钩选 IIS连接127.0.0.1要输入用户名密码的解决办法原因很多,请尝试以下操作: 1.查看网站属性——文档看看启 ...
随机推荐
- 581. Shortest Unsorted Continuous Subarray连续数组中的递增异常情况
[抄题]: Given an integer array, you need to find one continuous subarray that if you only sort this su ...
- linux Shell中常用的条件判断
linux Shell中常用的条件判断 -b file 若文件存在且是一个块特殊文件,则为真 -c file 若文件存在且是一个字符特殊文件,则为真 -d ...
- 在Ubuntu上源码安装NodeJS
Refer http://nqdeng.github.io/7-days-nodejs/#7.1 前提条件: 确保系统下g++版本(g++ -v)在4.6以上,python版本(python --ve ...
- PC端QT源码编译
转载:http://blog.sina.com.cn/s/blog_c2b97b1d01016x1i.html 1.下载源码(前面已经提到了) 选择合适自己的源码. 先用"uname -a& ...
- PHP防止木马攻击的措施
防止跳出web目录 只允许你的PHP脚本在web目录里操作,针对Apache,还可以修改httpd.conf文件限制PHP操作路径. 例如:php_admin_value open_basedir( ...
- System.Web.UI.Page事件执行顺序
#region OnPreInit 第一步(显式重写,文章下面有隐式重写) protected override void OnPreInit(EventArgs e) { //检查 IsPostBa ...
- Unity破解不成功解决方案
你是不是遇到过Unity新版本出来的时候就急着使用,但是安装好了,却破解不成功的问题(你之前的版本破解过).这是由于你的注册表没有彻底的删除,接下来我们图解如何清理. 1.卸载以前的版本,卸载完了删除 ...
- ArcGIS Desktop和Engine中对点要素图层Graduated Symbols渲染的实现 Rotation Symbol (转)
摘要 ArcGIS中,对于要素图层的渲染,支持按照要素字段的值渲染要素的大小,其中Graduated Symbols可以对大小进行分级渲染.在个人开发系统的过程中,也可以用来美化数据显 ...
- if 判断
语法一: if 条件: #条件成立时执行的字代码块 代码1 代码2 代码3 示例: sex='female' age=18 is_beautiful=True if sex == 'female' a ...
- 禁用 C# 编译器对某段代码的警告
发使用 C# 编译器编译一些项目的时候, C# 编译器可能会生成一些警告信息, 有些代码段的警告信息是程序员知道的,所以希望 C# 编译器不要对这段代码进行任何的警告. 在 VS 中的项目选项中可以对 ...