Python專案2---實現使用者登入介面(含檔案操作)
阿新 • • 發佈:2019-01-22
第一步:讀取使用者賬號密碼檔案,將其內容按賬號為key,密碼為值,儲存在一個字典中
第二步:讓使用者輸入賬號和密碼
第三步:判斷賬號是否在字典的key中
1有,檢查是否賬號被鎖定(判斷行開始是否有!)
沒有鎖定
再檢查密碼是否匹配
1匹配:登入成功
2不匹配:重新輸入or退出
密碼錯誤3次,鎖定賬號
鎖定
提示資訊
2沒有,讓使用者重新輸入賬號or退出
第四步:鎖定密碼錯誤3次的賬號,在賬號檔案中該賬號密碼對應的行新增一個!放在密碼開始
from fun import * with open("users data.txt","r") as f: user_data = f.read() user_data = user_data.split('\n') data_dict = dict([it.split(',') for it in user_data])#將生的成列表轉換成字典 f.close() i = 1 while(i): ID = input("請輸入賬號:") password = input("請輸入密碼:") if ID in data_dict.keys(): if data_dict[ID][0] == '!': print("您的賬號已經被鎖定,請聯絡管理員!") break else: for times in range(3): if password == data_dict[ID]: print("登入成功") i = 0 break else: if times != 2: choice = input("密碼錯誤,按1重新輸入,按2退出:") if choice == '1': password = input("請輸入密碼:") continue else: print("您已經退出登入系統") i = 0 break else: print("密碼錯誤3次,您的賬戶已經被凍結") lock(user_data,ID) i = 0 break else: choice = input("賬戶不存在,按1重新輸入,按2退出:") if choice == '1': continue else: print("您已經退出登入系統") break
fun.py
import os,shutil def lock(user_data,ID): with open("user_data_lock.txt","w") as f: for it in user_data: if it.split(',')[0] == ID: it = it.split(',')[0]+',!'+it.split(',')[1] f.write(it+'\n') else: f.write(it+'\n') f.close() os.unlink("users data.txt") shutil.move("user_data_lock.txt","users data.txt")
賬戶檔案格式: