首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Phonebook python

Phonebook python
EN

Stack Overflow用户
提问于 2012-01-08 18:17:33
回答 2查看 1.4K关注 0票数 0

您好,我是python的新手,我最近使用字典功能创建了一个电话簿,然后使用py2exe更改为可执行文件。我现在面临着一个问题,我把名字输入到电话簿中,然后当我退出程序并返回时,所有的号码都不见了。那么,有没有办法保存输入到程序中的姓名和数字呢?请给我代码,因为我正在为我的类这样做,如果他们每次退出电话簿时号码都消失了,他们会发疯的!请帮帮我!

EN

回答 2

Stack Overflow用户

发布于 2012-01-08 18:27:06

票数 2
EN

Stack Overflow用户

发布于 2012-01-08 20:03:40

嗯,主要的问题是您确实在数据库中存储了新值,在本例中用dict表示,但是您没有在脚本执行之间保存它的条件。对象在脚本中存在的时间-当脚本由解释器运行时,对象与它有一些链接。当你重新启动你的程序时,你开始重新运行你的脚本,并且它只在dict中存储在脚本中指定的元素。

在我看来,最简单的解决方案是使用python pickle module。您将把该字典保存在一个文件中,然后将其加载到您的脚本请求中,并在最后保存它。

您需要使用如下内容更新脚本代码:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8776755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档