python 3.x 循環讀取文件用戶登陸

 1 import os                                                                 # 導入python自帶庫的模塊
 2 import sys                                                                # 導入python自帶庫的模塊
 3 import getpass                                                            # 導入python自帶庫的模塊
 4 lock_file = 'E:account_lock.txt'                                          # 定義是否鎖定狀態的變量
 5 user_file = 'E:account.txt'                                               # 定義帳號密碼變量文件
 6 u = 0                                                                     # 循環初始化
 7 while u < 3:
 8     name = input("請輸入用戶名:")                                         # 用input 給name賦值
 9     lock_file = open('E:account_lock.txt','r+')                            # 打開鎖定文件,權限是讀取更新
10     lock_list = lock_file.readlines()
11     for lock_line in lock_list:
12         lock_line = lock_line.strip('\n')                                  # 使用.strip()的方法去點換行符
13         if name == lock_line:
14             print('用戶 %s 已經鎖定,請聯繫您的系統管理員' % name)     
15             sys.exit(1)
16     user_file = open('E:account.txt','r')                                  # 打開account文件,權限是讀取更新
17     user_list = user_file.readlines()                                      # 使用.readlines的方法逐行讀取account文件
18     for user_line in user_list:                                            # 使用for循環讀取account的內容
19         (user,passwd) = user_line.strip('\n').split()                      # 用戶名密碼輸入次數超過3次的用戶添加到account_lock文件中
20         if name == user:
21             j = 0
22             while j < 3:
23                 password= getpass.getpass('請輸入密碼')
24                 if password == passwd:
25                     print('歡迎登陸管理平臺,用戶%s' %name)
26                     sys.exit(0)
27                 else:
28                     if j != 2:           
29                         print('用戶%s密碼錯誤,請從新輸入,還有%d次機會'%(name,2 -j))
30                 j += 1
31             else:
32                 lock_file.write(name + '\n')
33                 sys.exit('用戶 %s 達到最大登陸次數,將被鎖定並退出' % name)
34         else:
35             pass
36     else:
37             if u != 2:                                                               #i=2時,是最後一次機會,不用在提示還剩餘0次機會了
38                 print('用戶%s 不存在,請從新輸入,還有%d 次機會' %(name,2 - u))
39     u += 1
40 else:
41  sys.exit('由於您的錯誤輸入,程序已經退出,請從新運行')
42 lock_file.close()
43 user_file.close()
相關文章
相關標籤/搜索