Python编辑金额记事本

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()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容