import time
import os
import pickleas p
a1 ='/tmp/a.txt'
def spend_money(record,a1):
date = time.strftime('%Y-%m-%d')
amount =int(input('金额: '))
comment =input('备注: ')
with open(a1,'rb')as fobj:
balance = p.load(fobj) - amount
with open(a1,'wb')as fobj:
p.dump(balance,fobj)
with open(record,'a')as fobj:
fobj.write("%-15s%-8s%-8s%-10s%-20s\n" %(date,amount,'n/a',balance,comment))
def save_money(record,a1):
date = time.strftime('%Y-%m-%d')
amount =int(input('金额: '))
comment =input('备注: ')
with open(a1,'rb')as fobj:
balance = p.load(fobj) + amount
with open(a1,'wb')as fobj:
p.dump(balance,fobj)
with open(record,'a')as fobj:
fobj.write("%-15s%-8s%-8s%-10s%-20s\n" %(date,'n/a',amount,balance,comment))
def query(record,a1):
print("日期 支出 收入 余额 备注")
with open(record)as fobj:
for linein fobj:
print(line,end='')
with open(a1,'rb')as fobj:
balance = p.load(fobj)
print('当前余额: %s' % balance)
def show_menu():
prompt ="""
1:开销 2:收入 3:查询 4:退出
请选择(1/2/3/4): """
cmds = {'1':spend_money,'2':save_money,'3':query}
record ='record.txt'
a1 ='a1.data'
if not os.path.exists(a1):
with open(a1,'wb')as fobj:
p.dump(10000,fobj)
while True:
try:
choice =input(prompt).strip()[0]
except IndentationError:
continue
except (KeyboardInterrupt,EOFError):
print('\nBye-bye')
choice ='4'
if choicenot in '1234':
print('无效输入,请重试')
continue
if choice =='4':
break
cmds[choice](record,a1)
if __name__ =='__main__':
show_menu()