更具体一点我想写一个简单的预算跟踪程序,我想知道如何告诉程序我今天花了多少钱和什么,以便我可以在第二天打开程序从最后一天改变的预算?
答案 0 :(得分:0)
如果程序不是很大,你可以使用文件并在那里存储数据。 您可以在程序加载时加载数据,读取并执行计算,并在程序关闭时保存文件。
如果你的程序变得非常大,你可能想要使用数据库。
答案 1 :(得分:0)
您可以在需要时使用附加记录的简单文本文件。随着时间的推移,您可以随时将其转换为更精细的内容:
class Record:
archive = 'archive.txt'
def __init__(self, date, purpose, amount):
self.date = date
self.purpose = purpose
self.amount = amount
self.save_record()
def save_record(self):
with open('archive.txt', 'a') as f:
f.write(str(self))
def __str__(self):
return f'{self.date}, {self.purpose}, {self.amount}\n'
if __name__ == '__main__':
Record('20180604', 'candy', 3.20)
Record('20180507', 'chocolate', 4.20)
您可以查看python提供的各种格式的时间戳,以及csv
模块,了解如何改进这一点。
一个简单的文件读取脚本,可以很长的路径来检索记录。
答案 2 :(得分:0)
您可以使用文本文件,类似于:
def func():
action = input("Action: ")
if action == "save":
savedataL1 = input(">")
savedataL2 = input(">")
savedataL3 = input(">")
savedataL4 = input(">")
savedataL5 = input(">")
file = open("foo.txt","w+")
file.truncate()
file.write(str(banoffee.hexlify(bytes(savedataL1, 'utf8'))).replace("b'","").replace("'","") + "\n")
file.write(str(banoffee.hexlify(bytes(savedataL2, 'utf8'))).replace("b'","").replace("'","") + "\n")
file.write(str(banoffee.hexlify(bytes(savedataL3, 'utf8'))).replace("b'","").replace("'","") + "\n")
file.write(str(banoffee.hexlify(bytes(savedataL4, 'utf8'))).replace("b'","").replace("'","") + "\n")
file.write(str(banoffee.hexlify(bytes(savedataL5, 'utf8'))).replace("b'","").replace("'","") + "\n")
elif action == "load":
file = open("foo.txt","r")
lines=file.readlines()
print("")
print(str(banoffee.unhexlify(bytearray(lines[0].strip(), 'utf8')))[2:-1])
print(str(banoffee.unhexlify(bytearray(lines[1].strip(), 'utf8')))[2:-1])
print(str(banoffee.unhexlify(bytearray(lines[2].strip(), 'utf8')))[2:-1])
print(str(banoffee.unhexlify(bytearray(lines[3].strip(), 'utf8')))[2:-1])
print(str(banoffee.unhexlify(bytearray(lines[4].strip(), 'utf8')))[2:-1])
else:
func()
func()