1 #! /usr/bin/env python
2 #-*- coding:utf-8 -*-
3 #Author:Ku
4
5 record_num = open(r'e:\first week\record_num.txt', 'r') #用来记录用户密码以及尝试过的用户的数量
6
7 #提取用户数量以及尝试过的用户名数量
8 num_username =int(record_num.readline().rstrip())9 num_record_username =int(record_num.readline().rstrip())10 #print(num_username,num_record_username)
11 record_num.close()12
13 count = 1 #指示尝试的次数
14
15 while count <= 3:16
17 username = input("Please enter your username:") #输入模块
18 #password = getpass.getpass("Please enter your password:")
19 password = input("Please enter your password:")20
21
22 user = open(r'e:\first week\username.txt', 'r') #文件打开模块
23 passwd = open(r'e:\first week\passwd.txt', 'r')24
25
26 trid_name = 0 #这个模块来判断是否这个用户名尝试过很多次
27 with open(r'e:\first week\record_name.txt', 'r') as record_tried_name:28 for i inrange(num_record_username):29
30 #record_buffer = record_tried_name.readline().rstrip()
31 if username ==record_tried_name.readline().rstrip():32 print("This account have tried too many times!")33 trid_name = 1
34 break
35 if trid_name == 1:36 break
37
38 user_valid = 0 #用来标记用户名是否有效
39
40 j = 0 #用来标记有效用户名的编号
41
42 for i inrange(num_username):43 username_buffer = user.readline().rstrip() #用来暂时存储用户名,可以不用
44 if username ==username_buffer:45 user_valid = 1
46 j = i #record the which username is right
47 break
48
49 if user_valid ==0:50 print("Your account is not valid")51 count += 1
52 if count >= 4:53 print("Sorry you've tried too many times")54
55 with open(r'e:\first week\record_name.txt', 'a') as record_tried_name: #该模块用来写入尝试过很多次的账户
56 record_tried_name.write("%s\n"%username)57
58 num_record_username += 1 #这个模块来记录记录的账户数量的变化
59 with open(r'e:\first week\record_num.txt', 'w') as change:60 change.write("%s\n" %num_username)61 change.write("%s\n" %num_record_username)62
63 record_tried_name.close()64 break #跳出while循环
65
66 else:67 login_success =068 for l in range(num_username): #l作为指针指示第几行
69 passwd_buffer =passwd.readline().rstrip()70 if l == j: #如果l与登录用户的顺序一致,则进入之后的判断
71 if password ==passwd_buffer:72 print("yes,%s is in!"%username)73 login_success = 1
74 break #跳出for循环
75
76 else:77 print("Your password is wrong!")78 count += 1
79 if count >=4:80 print("Sorry you've tried too many times")81 with open(r'e:\first week\record_name.txt', 'a') as record_tried_name: #用来写入尝试过很多次的账户
82 record_tried_name.write("%s\n" %username)83
84 num_record_username +=1 #这个模块来记录记录的账户数量的变化
85 with open(r'e:\first week\record_num.txt', 'w') as change:86 change.write("%s\n"%num_username)87 change.write("%s\n"%num_record_username)88
89 record_tried_name.close()90 if login_success == 1:91 break #跳出while循环,成功登录
92 user.close() #关文件
93 passwd.close() #关文件