目录结果如下:

-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 cat
admin 1802.95 30000 0
qinling 1029.0 30000 0
system 2329.05 30000 0
Tue Nov  8 16:44:54 2016,admin,bill,0
Tue Nov  8 16:44:54 2016,admin,query,0
Tue Nov  8 16:53:32 2016,admin,query,0
Tue Nov  8 16:53:32 2016,admin,bill,0
Tue Nov  8 16:53:32 2016,admin,save,10000
Tue Nov  8 16:53:32 2016,admin,bill,0
Tue Nov  8 16:53:32 2016,admin,query,0
Tue Nov  8 16:53:32 2016,admin,bill,0
Tue Nov  8 16:53:32 2016,admin,bill,0
Tue Nov  8 16:53:32 2016,qinling,query,0
Tue Nov  8 16:53:32 2016,qinling,bill,0
Tue Nov  8 16:53:32 2016,admin,query,0
Tue Nov  8 16:53:32 2016,admin,bill,0
Tue Nov  8 16:53:32 2016,admin,bill,0
admin admin 0
import tab
import io,sys,time
billpath = '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 = 0


    




 print "=================================================="
 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 python
import sys,io
def 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,time
import tab
import login
import 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_value
def 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':
    break
def 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 +=1

   elif Inoption == '0':
    break

def 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 0
qinling 123 2
loren loren123 3
admin 1000

[END] 2016/11/8 16:58:11