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 MD5文件生成码
Jan 12 Python
解决Python传递中文参数的问题
Aug 04 Python
Python语法快速入门指南
Oct 12 Python
深入解析Python中的list列表及其切片和迭代操作
Mar 13 Python
Python读写Json涉及到中文的处理方法
Sep 12 Python
python构建深度神经网络(续)
Mar 10 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
一篇文章了解Python中常见的序列化操作
Jun 20 Python
在SQLite-Python中实现返回、查询中文字段的方法
Jul 17 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
python3连接MySQL8.0的两种方式
Feb 17 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 autoload机制的详解
2013/06/09 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
一个挺有意思的Javascript小问题说明
2011/09/26 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
Python程序设计入门(4)模块和包
2014/06/16 Python
Python求导数的方法
2015/05/09 Python
Python Pandas批量读取csv文件到dataframe的方法
2018/10/08 Python
python 高效去重复 支持GB级别大文件的示例代码
2018/11/08 Python
通过实例解析Python return运行原理
2020/03/04 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
小学生母亲节演讲稿
2014/05/07 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
2015年教务工作总结
2015/05/23 职场文书
2015年高中班级工作总结
2015/07/21 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL