用户认证练习

python学习网 2018-03-09 22:49:02

用户输入用户名密码,密码认证三次,都输入不正确锁定

 

账户密码记录文件 data,

hong|123
ding|123

  

锁定账户密码文件 data1,

hong

 

 1 import os,sys,getpass
 2 from pathlib import Path
 3 f = open(Path(__file__).parent / "data","r")    #指定账户文件
 4 d = open(Path(__file__).parent / "data1","r+")    #读取黑名单
 5 
 6 #看是否锁定
 7 name_in = input("Pleae input your name:").strip()
 8 for black in d:
 9     if name_in == black.strip():
10         print("\033[31m Your count has locked \033[0m")
11         sys.exit()
12     #    sys.exit("Your count has locked,Please contect the manager!")
13 #判断是否为有效账户
14 if name_in not in f.read():
15     sys.exit("Please check your name,invalid name")
16 f.close()
17 
18 
19 for i in range(3):    
20     f = open(Path(__file__).parent / "data","r")
21     pass_in = getpass.getpass("Please input your password:")  #用户输入密码
22     ##开始验证用户密码
23     for line in f:    #读取账户
24         f_name = line.split("|")[0]  #获取用户名
25         f_pass = line.split("|")[1].strip()    #获取密码
26         if name_in == f_name and pass_in == f_pass:
27             sys.exit("Wellcome")
28         else:
29             cout_t = 2 - i
30             print("password error,please try again,you have %s times" % cout_t)                
31             break
32     f.close()
33 else:
34     d.write(name_in + "\n") #失败3次加入黑名单
35     sys.exit("your count has locked")
36 d.close()
写法1
写法2 
阅读(748) 评论(0)