Python实现登陆文件验证方法

yipeiwu_com6年前Python基础

代码主要功能:

利用Python实现简单的登陆验证,代码主要有两个部分组成:

第一部分:登陆页面,作用是实现用户名和密码的输入

利用两个输入函数input()来实现对用户名和密码的输入

第二部分:文件验证,作用是对输入的信息进行验证

1.用户名的验证,首先对存储用户名和密码的信息读取,然后再把输入的用户名和从文件中读取的用户名进行比对,如果比对成功则进行下一步的密码验证,如果没有实现则提示重新输入密码,对密码的验证也有一个输入上限,当密码输入错误3次,程序退出。否则验证成功。

登陆页面代码:

import text #text为文件名:text.py 用来实现文件验证

print("欢迎使用登陆")

username = input("请输入用户名:")

while text.CheckUsername(username)==-1:

  username = input("没有该用户\n请输入用户名:")

else:

  n=text.CheckUsername(username)

  password = input("请输入密码:")

  text.CheckUser(n,password)

文件验证代码:

import pickle

def CheckUsername(name):#检验是否有该用户名

  ff = open("D:\\test.txt", "rb")

  n = pickle.load(ff)

  # print(n)

  # print(n[0][0])

  # print(len(n))

  ff.close()

  for i in range(len(n)):

    if name == n[i][0]:

      return i

  return -1#用来返回用户名所在位置

def CheckUser(x,psd):#x为用户名位置,pwd为密码

  ff = open("D:\\test.txt", "rb")

  n = pickle.load(ff)

  # print(n)

  # print(n[0][0])

  # print(len(n))

  ff.close()

  i=1

  while n[x][1]!=psd and i<3:

    psd=input("请再次输入密码:")

    i+=1

  else:

    if i<3:

      print("登陆成功!")

    else:

      print("3次输入密码错误!已锁定")

运行结果截图:

成功登陆页面:

验证用户名页面:

验证密码页面:

附加内容:

用户名和密码在文件的存储方式是一个列表:

import pickle

s=[["aaa","111"],["bbb","222"],["ccc","333"]]

f = open("D:\\test.txt","wb")

try:

  pickle.dump(s,f)

except:

  print("输入异常")

finally:

  f.close()

相关文章

Python函数返回值实例分析

本文实例讲述了Python的函数返回值用法。分享给大家供大家参考。具体分析如下: 最近学一些Python的基本用法,看到定义函数,发现似乎只能返回一个返回值,想想matlab里返回多个返...

通过Pandas读取大文件的实例

当数据文件过大时,由于计算机内存有限,需要对大文件进行分块读取: import pandas as pd f = open('E:/学习相关/Python/数据样例/用户侧数据/te...

基于PyQt4和PySide实现输入对话框效果

基于PyQt4和PySide实现输入对话框效果

今天做了个基于PyQt4和PySide的输入对话框.已放到PyPi中,包名wlab,大家可以使用pip安装: pip install wlab 在程序输入中,有时会要求同时改变多个参...

如何使用Python自动控制windows桌面

如何使用Python自动控制windows桌面

前言 在使用PC时与PC交互的主要途径是看屏幕显示、听声音,点击鼠标和敲键盘等等。在自动化办公的趋势下,繁琐的工作可以让程序自动完成。比如自动化测试、自动下单交易等。很多软件除了可以GU...

在IPython中进行Python程序执行时间的测量方法

在写MATLAB的脚本的时候我时长会用tic、toc进行一下程序运行时间的测量。在Python中偶尔也会测试下,但是基本上都是靠使用time模块。接触了IPython之后突然间发现,原来...