天天看點

python--使用者登入與鎖定錯誤賬戶(待優化)

此文參考http://www.cnblogs.com/wushank/p/5060169.html

root@kali:~/python/atm4# vi logocopy.py

#!/usr/bin/python
# --*-- coding:utf-8 --*--

import sys,os,getpass,tab,time,datetime

def vartime():
    d1 = datetime.datetime(,,)
    d2 = datetime.datetime(,,)
    print (d1 - d2).days#計算兩個日期相差天數

    starttime = datetime.datetime.now()
    endtime = datetime.datetime.now()
    print (endtime - starttime).seconds#計算運作時間的例子,以秒進行顯示

    d3 = datetime.datetime.now()
    d4 = d3 + datetime.timedelta(hours = )
    print d4.ctime()#計算目前時間向後10小時的時間

def curtime():
    date = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
    #print date
    date_list.append(date)

os.system('clear')#運作自動清除螢幕資訊
count = 
date_list = []
curtime()
vartime()
print date_list
os.system('clear')#運作自動清除螢幕資訊
count = 
while count < :#隻要使用者登入異常不超過3次就不斷循環
        name = raw_input('請輸入使用者名:')
        lock_file = open('account_lock.txt','r+')#當使用者輸入使用者名後,打開LOCK 檔案 以檢查是否此使用者已經LOCK了
        lock_list = lock_file.readlines()#把lock_file檔案内容全部讀取到lock_list清單中

        for lock_line in lock_list:#循環取lock_line清單檔案内容
                lock_line = lock_line.strip('\n')#去掉換行符
                if name == lock_line:#如果LOCK了就直接退出
                        print '你輸入的 %s 已經被鎖定!' % name
                        sys.exit()

        user_file = open('account.txt','r')#打開帳号檔案
        user_list = user_file.readlines()#把user_file檔案内容全部讀取到user_list清單中
        for user_line in user_list:#循環取user_line清單檔案内容
                (user,password) = user_line.strip('\n').split()#使用空格分隔,分别擷取帳号和密碼資訊
                #print user
                #print password
                if name == user:
                        j = 
                        while j < :#隻要使用者密碼異常不超過3次就不斷循環
                                passwd = getpass.getpass('請輸入密碼:')#輸入隐藏密碼
                                if passwd == password:
                                        print ('歡迎登陸管理系統,使用者%s' % name)
                                        exit()#正常退出
                                else:
                                        if j != :
                                                print ('使用者%s 密碼錯誤,請重新輸入,還有%d次機會' %(name,-j))
                                j += 
                        else:
                                lock_file.write(name + '\n')
                                print '使用者 %s 達到最大登入次數,将被鎖定并退出' % name
                                sys.exit()
                else:
                        pass
        else:
                if count != :
                        print ('使用者 %s 不存在,請重新輸入,還有 %d 次機會' % (name, - i))
        count += 
else:
        print '輸入的使用者 不存在,退出'
        sys.exit()

lock_file.close()
user_file.close()