Python实现简单登录验证


Posted in Python onApril 13, 2016

本文实例为大家分享了简单的Python登录验证,供大家参考,具体内容如下

编写登录接口

要求:1、输入用户名密码

 2、认证成功后显示欢迎信息

 3、输错三次后锁定

#coding=utf-8
__author__ = 'wangwc'

import sys,os
count = 0
locked = 0
mark_user = 0
mark_passwd = 0
#获取路径
def cur_file_dir():
  path = sys.path[0]
  if os.path.isdir(path):
    return path
  elif os.path.isfile(path):
    return os.path.dirname(path)
#print (cur_file_dir())
path = cur_file_dir()
#print(path)
path1 = path.replace("\\",'/') + '/'
#print (path1)
#path2 = path1 + '/'

#循环输入
while count < 3:
  name = input("Username:").strip()
  if len(name) == 0:
    print ("Username can not be empty....")
    continue
  key = input("Password:").strip()
  if len(key) == 0:
    print("The password can not be empty!Try again...")
    continue
  f = open(path1 + "username.txt","r")
  userlist = f.readlines()
  for user in userlist:
    if user.strip() == name:
      mark_user = 1
  f.close()

  if mark_user == 1:
    f = open(path1 + "%s_lock.txt" %(name),"r")
    locked = int(f.readline().strip())
    f.close()
  else:
    print ("Username or Passsord wrong....")
    break
  if locked == 1:
    print("Sorry, the username had been locked!!!Please call the system administrator...")
  else:
    f = open (path1 + "%s_passwd.txt" %(name),"r")
    passwd = (f.readline().strip())
    if passwd.strip() == key:
      mark_passwd = 1
    if mark_user == 1 and mark_passwd == 1:
      f = open("%s_count.txt" %(name),"w")
      f.write("0")
      f.close()
      print("%s,welcome BABY!" %(name) )
      #input('Press Enter to exit')
    else:
      f = open("%s_count.txt" %(name),"r")
      count = int((f.read().strip()))
      f.close()
      count +=1
      f = open("%s_count.txt" %(name),"w")
      f.write(str(count))
      f.close()
      print ("Username or password wrong!And the username '%s' has %d more chances to retry!" %(name,3 - count))
      if(count == 3):
        print ("'%s' has been locked!!!" %(name))
        if os.path.exists(path1 + "%s_lock.txt" %(name)):
          fobj = open(path1 + "%s_lock.txt" %(name),"w")
          fobj.writelines("1\n")
        else:
          print ("Username or password wrong!")
      continue

以上就是本文的全部内容,希望对大家的学习有所帮助。

Python 相关文章推荐
Python的pycurl包用法简介
Nov 13 Python
Python线程下使用锁的技巧分享
Sep 13 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
Oct 15 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
wxPython窗体拆分布局基础组件
Nov 19 Python
Python调用.NET库的方法步骤
Dec 27 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
Python3基本输入与输出操作实例分析
Feb 14 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
python实现猜拳游戏
Mar 04 Python
Python配置pip国内镜像源的实现
Aug 20 Python
Matplotlib配色之Colormap详解
Jan 05 Python
Python数组定义方法
Apr 13 #Python
Python基于select实现的socket服务器
Apr 13 #Python
Python简单实现子网掩码转换的方法
Apr 13 #Python
Python多进程分块读取超大文件的方法
Apr 13 #Python
Python字符串拼接、截取及替换方法总结分析
Apr 13 #Python
Python字符串格式化输出方法分析
Apr 13 #Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 #Python
You might like
PHP实现获取域名的方法小结
2014/11/05 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
jQuery $.each的用法说明
2010/03/22 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
RGB和YUV 多媒体编程基础详细介绍
2016/11/04 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
2016/12/26 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
layui table设置前台过滤转义等方法
2018/08/17 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
[54:10]完美世界DOTA2联赛PWL S2 Magma vs FTD 第二场 11.29
2020/12/03 DOTA
使用Python生成url短链接的方法
2015/05/04 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
python实现感知器算法详解
2017/12/19 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
python实现单链表的方法示例
2019/09/03 Python
Python根据字典的值查询出对应的键的方法
2020/09/30 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
html5开发之viewport使用
2013/10/17 HTML / CSS
使用canvas对多图片拼合并导出图片的方法
2018/08/28 HTML / CSS
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
会计实习期自我鉴定
2013/10/06 职场文书
标枪加油稿
2015/07/22 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
工作自我评价范文
2019/03/21 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
python非标准时间的转换
2021/07/25 Python