目录结果如下:
-rw-r--r-- 1 root root 68 Nov 8 16:54 accountinfo.data
-rw-r--r-- 1 root root 545 Nov 8 16:55 accountinfo.log-rw-r--r-- 1 root root 14 Nov 8 14:25 adminaccount.data-rw-r--r-- 1 root root 1738 Nov 8 16:53 bill.py-rw-r--r-- 1 root root 1911 Nov 8 16:53 bill.pyc-rw-r--r-- 1 root root 1407 Nov 8 08:59 login.py-rw-r--r-- 1 root root 1855 Nov 8 09:39 login.pyc-rw-r--r-- 1 root root 4415 Nov 8 16:38 service.py-rw-r--r-- 1 root root 45 Nov 8 11:37 useraccount.data-rw-r--r-- 1 root root 11 Nov 8 08:59 userinfo.data全部文件输出
[BEGIN] 2016/11/8 16:58:01
[root@mysql-test ATMservice]# ls |grep -v .pyc |xargs catadmin 1802.95 30000 0qinling 1029.0 30000 0system 2329.05 30000 0Tue Nov 8 16:44:54 2016,admin,bill,0Tue Nov 8 16:44:54 2016,admin,query,0Tue Nov 8 16:53:32 2016,admin,query,0Tue Nov 8 16:53:32 2016,admin,bill,0Tue Nov 8 16:53:32 2016,admin,save,10000Tue Nov 8 16:53:32 2016,admin,bill,0Tue Nov 8 16:53:32 2016,admin,query,0Tue Nov 8 16:53:32 2016,admin,bill,0Tue Nov 8 16:53:32 2016,admin,bill,0Tue Nov 8 16:53:32 2016,qinling,query,0Tue Nov 8 16:53:32 2016,qinling,bill,0Tue Nov 8 16:53:32 2016,admin,query,0Tue Nov 8 16:53:32 2016,admin,bill,0Tue Nov 8 16:53:32 2016,admin,bill,0admin admin 0import tabimport io,sys,timebillpath = 'accountinfo.log'accountpath = 'accountinfo.data'bill = []info = []with open(billpath) as billfile: for line in billfile.readlines(): bill.append(line.strip())with open(accountpath) as infofile: for line in infofile.readlines(): info.append(line.strip())def bill_index(account): bill_account_remain=0 bill_count_load=0 bill_count_save=0 for line in bill: if len(line) !=0 : logtime=line.split(',')[0] logaccount=line.split(',')[1] logaction=line.split(',')[2] lognumber=line.split(',')[3] if logaccount == account : if logaction =='save': bill_count_save =float(bill_count_save)+float(lognumber) elif logaction =='load': bill_count_load =float(bill_count_load)+float(lognumber) elif logaction =='loadoption': bill_count_load =float(bill_count_load)+float(lognumber) for line in info: if len(line) !=0: if line.split()[0] == account: bill_account_remain = float(line.split()[1]) if float(line.split()[1]) < 0 : bill_account_mustsave = 0 - float(line.split()[1]) else : bill_account_mustsave = 0print "==================================================" print " %s bill" %account print "==================================================" print "Data:%s-%s Account:%s" %(time.gmtime()[0],time.gmtime()[1],account) print "pay:$ %s , save:$ %s " %(bill_count_load,bill_count_save ) print "Remain:$ %s , must save:$ %s " %(bill_account_remain,bill_account_mustsave ) print "==================================================" for line in bill: if len(line) !=0 and float(line.split(',')[3]) > 0 and line.split(',')[1]==account: print line
#bill_index('admin')
#!/usr/lib/env pythonimport sys,iodef login(filepath='useraccount.data'): UserInfo={} with open(filepath) as file: for line in file.readlines(): if len(line) !=0: account=line.strip().split()[0] password=line.strip().split()[1] errcount=line.strip().split()[2] UserInfo[account]=[password,errcount]def fileup(upfilepath):
with open(upfilepath,'w') as fileup: for key in UserInfo.keys(): str = "%s %s %s\n" %(key,UserInfo[key][0],UserInfo[key][1]) fileup.write(str) logincount=0 while logincount < 5: print "Welcome To Login" Iaccount=raw_input("Account:").strip() Ipasswd=raw_input("Password:").strip() if len(Iaccount) !=0 and len(Ipasswd)!=0: if UserInfo.has_key(Iaccount): if int(UserInfo[Iaccount][1]) < 3: if Ipasswd == UserInfo[Iaccount][0]: print "Welcome to %s" %Iaccount return(Iaccount) break else: print "Error:Account or password is Error.Please Login agin.Password" UserInfo[Iaccount][1]=int(UserInfo[Iaccount][1])+1 logincount +=1 fileup(filepath) else: print "Error:Account or password is Error.Please Login agin.Lock" logincount +=1 else: print "Error:Account or password is Error. Please Login agin.Account" logincount +=1 else: print "Error:Input is Error! Please Login again.Len" logincount +=1 if logincount > 4: return('null')
import io,sys,timeimport tabimport loginimport bill
accountinfo={}
with open('accountinfo.data') as userinfofile: for line in userinfofile.readlines(): if len(line) > 4: account_value=['node',0,30000,0] account=line.strip().split()[0] account_value[0]=line.strip().split()[1] account_value[1]=line.strip().split()[2] account_value[2]=line.strip().split()[3] accountinfo[account]=account_valuedef userinfo_update(): with open('accountinfo.data','w') as userinfo_file: for account in accountinfo.keys():ccount][2]) userinfo_file.write(str)def action_log(account,action,number=0,createtime=time.ctime()):
with file('accountinfo.log','a') as log_file: str = "%s,%s,%s,%s\n" %(createtime,account,action,number) log_file.write(str) return('true')def user(uaccount):
Inoption = "" while Inoption != '0': print "==========================" print " User Function" print "==========================" print "1 Save account" print "2 Load account" print "3 Query account" print "4 Query Water Log" print "0 Break account" Inoption=raw_input("Option[0-3]:").strip() inputerr=0 if len(Inoption) !=0: if Inoption == '1': while inputerr <5: Save_Number= int(raw_input("save Money:").strip()) if accountinfo.get(uaccount)[0] > 0 or accountinfo.get(uaccount)[0] == 0:Save_Number) userinfo_update() action_log(uaccount,'save',Save_Number) print "Action sure" time.sleep(2) break else: accountinfo[uaccount]=[0,30000,0] action_log(uaccount,'create',0) print "Action err " time.sleep(2) inputerr +=1 elif Inoption == '2': while inputerr < 3: Load_Number = float(raw_input("Load Money:").strip()) loadoption= float(Load_Number * 0.05) if Load_Number > 0 and Load_Number < 15000 :_Number) - float(loadoption)loadoption) userinfo_update() action_log(uaccount,'load',Load_Number) action_log(uaccount,'loadoption',loadoption) action_log('system','loadoption',loadoption) print "Action sure" time.sleep(2) break else: print "Error:.Please Input again." time.sleep(2) elif Inoption == '3': print "Account Balance:\033[032,1m %s \033[0m " % accountinfo[uaccount][0] action_log(uaccount,'query') time.sleep(2)elif Inoption == '4':
bill.bill_index(uaccount) action_log(uaccount,'bill') time.sleep(2) elif Inoption == '0': breakdef user_bill(bill_account): with file("accountinfo.log") as bill_file: for line in bill_file.readlines(): #print line if line.strip().split(',')[1] ==bill_account and len(line) !=0: if line.strip().split(',')[2] in('save','load','loadoption'): #== 'save' or line.strip().split(',')[2] == 'load' #line.strip().split(',')[2] == 'loadoption': log_time=line.strip().split(',')[0] log_account=line.strip().split(',')[1] log_action=line.strip().split(',')[2] log_numer=line.strip().split(',')[3] print "%s %s %s"%(log_time,log_action,log_numer) def admin(uaccount): Inoption = "" while Inoption != '0': print "==========================" print " ATMAdmin Function" print "==========================" print "1 Save account" print "0 Break account" Inoption=raw_input("Option[0-4]:").strip() inputerr=0 if len(Inoption) !=0: if Inoption == '1': while inputerr <5: inputerr +=1elif Inoption == '0':
breakdef index():
while True: print print "======================" print "Welcome To ATM service" print "======================" print "1 User Login" print "2 Admin Login" print "0 exit" Ioption = raw_input("Option[1-3]:").strip() if len(Ioption) !=0 : if Ioption == '0': break elif Ioption == '1': useraccount=login.login('useraccount.data') if len(useraccount) !=0 and useraccount !='null': user(useraccount) elif Ioption == '2': login.login('adminaccount.data') if len(useraccount) !=0 and useraccount !='null': admin(useraccount)index()
admin admin 0qinling 123 2loren loren123 3admin 1000[END] 2016/11/8 16:58:11