您好,我是python的新手,我最近使用字典功能创建了一个电话簿,然后使用py2exe更改为可执行文件。我现在面临着一个问题,我把名字输入到电话簿中,然后当我退出程序并返回时,所有的号码都不见了。那么,有没有办法保存输入到程序中的姓名和数字呢?请给我代码,因为我正在为我的类这样做,如果他们每次退出电话簿时号码都消失了,他们会发疯的!请帮帮我!
发布于 2012-01-08 20:03:40
嗯,主要的问题是您确实在数据库中存储了新值,在本例中用dict表示,但是您没有在脚本执行之间保存它的条件。对象在脚本中存在的时间-当脚本由解释器运行时,对象与它有一些链接。当你重新启动你的程序时,你开始重新运行你的脚本,并且它只在dict中存储在脚本中指定的元素。
在我看来,最简单的解决方案是使用python pickle module。您将把该字典保存在一个文件中,然后将其加载到您的脚本请求中,并在最后保存它。
您需要使用如下内容更新脚本代码:
default = {'Sarah': 7736815441,
'John': 7736815442}
def start():
#some code here, before you're trying to access phone numbers in your dict
try:
phonebook = pickle.load(open("data.pb", "r"))
except IOError:
phonebook = default
#your script here
def exit():
#some code here, last chance to modify your dict,
#so changes will appear in next program executions
pickle.dump(phonebook, open("data.pb", "w"))希望你熟悉python函数,如果没有-你可以阅读here
https://stackoverflow.com/questions/8776755
复制相似问题