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函数中定义参数的四种方式
Nov 30 Python
浅析Python中的join()方法的使用
May 19 Python
详解Python中的strftime()方法的使用
May 22 Python
Python lxml模块安装教程
Jun 02 Python
Python正则简单实例分析
Mar 21 Python
Python随机函数random()使用方法小结
Apr 29 Python
在Python中分别打印列表中的每一个元素方法
Nov 07 Python
django中ORM模型常用的字段的使用方法
Mar 05 Python
Tensorflow的梯度异步更新示例
Jan 23 Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 Python
Django框架请求生命周期实现原理
Nov 13 Python
python通用数据库操作工具 pydbclib的使用简介
Dec 21 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基础知识:类与对象(1)
2006/12/13 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
php实现无限级分类(递归方法)
2015/08/06 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
vue实现导航菜单和编辑文本的示例代码
2020/07/04 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
js数组的基本使用总结
2021/01/18 Javascript
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
讲解Python中的递归函数
2015/04/27 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
python中正则表达式的使用方法
2018/02/25 Python
浅谈django orm 优化
2018/08/18 Python
Python爬虫小技巧之伪造随机的User-Agent
2018/09/13 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
电子专业推荐信范文
2013/11/18 职场文书
绩效工资实施方案
2014/03/15 职场文书
Django rest framework如何自定义用户表
2021/06/09 Python
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android