Python编写登录接口,从文件中获取用户名密码,输错三次后自动锁定并存储在文件中
1 file1 = open("lock.txt") #默认以只读形式,打开lock.txt这个文件
2
3 lock = [] #定义一个名为lock的空列表
4
5 for i in file1.readlines(): #按行读取file1中的字符串,读取结束后指针指向txt文件的末尾
6
7 lock.append(i.strip("\n")) #出去file1文件中每行字符串结尾的换行符,将每一行的被锁定用户名添加到lock列表中
8 username = ""
9 while username == "":
10 username = input("username:") #输入用户名
11 if username == "":
12 print("用户名输入不能为空,请重新输入!!!")
13
14 if username in lock: #首先判断用户名是否被锁定,即是否在锁定列表中
15 print("该账户已经被锁定,请联系开户行!!!")
16
17 else:
18
19 k=1
20
21 while k<=3:
22
23 login = False #定义一个登录是否成功的标识符
24
25 print("username:",username)
26
27 password = ""
28 while password == "":
29 password = input("password:") # 输入用户名
30 if password == "":
31 print("用户名输入不能为空,请重新输入!!!")
32
33 file2 = open("users.txt") #默认以只读形式,打开users.txt这个文件
34
35 for j in file2.readlines(): #按行读取file1中的字符串,读取结束后指针指向txt文件的末尾
36
37 if username == j.split()[0] and password == j.split()[1]: #将同一行的用户名和密码放入同一个列表中,与输入进行比较
38 print("欢迎登陆ATM存取款系统...")
39
40 login = True #登录成功更改标识符
41
42 file2.close() #关闭文件users.txt
43 break
44
45 else:
46 continue
47
48 if login == True:
49
50 break
51 else:
52 print("你输入的账号或者密码无效,再过", (3 - k), "次,你的账号将会被锁定!!!")
53
54 file2.close()
55 k += 1
56 if k ==4:
57 print("账户输入错误三次已锁定...")
58 file3 = open("lock.txt",'a') #以写的形式打开lock.txt这个文件
59 file3.write(username) #将被锁定的用户名写入txt文件中
60 file3.write("\n")
61 file3.close() #关闭文件lock.txt
62
63 file1.close() #关闭文件lock.txt
文件格式:


输出结果:
username:ZhangSan
username: ZhangSan
password:12
你输入的账号或者密码无效,再过 2 次,你的账号将会被锁定!!!
username: ZhangSan
password:123
欢迎登陆ATM存取款系统...
浙公网安备 33010602011771号