如何在python 3中使用pickle来创建保存功能

时间:2017-05-13 07:40:29

标签: python python-3.x pickle

我的代码只是一个测试,所以我可以了解pickle是如何工作的。有一个用户可以添加项目的单词列表。我想将这个单词添加到列表中,这样当程序再次运行时,列表将包含用户的单词。我不明白如何做到这一点,因为你首先必须定义列表,所以我最终得到原始单词加上用户在程序运行中写的单词

    import pickle

    class info():
        words = ['skylight','revenue']

    item = input("Type a word: ")
    info.words.append(item)

    with open("savefile.pickle","wb") as handle:
        pickle.dump(info.words, handle)

    with open("savefile.pickle","rb") as handle:
        info.words = pickle.load(handle)

    print(info.words)

1 个答案:

答案 0 :(得分:0)

嗯,你需要一种方法来区分第一次和第二次运行。我建议检查保存文件是否存在。如果是,您可以加载泡菜。否则,您将使用"默认值。"

您现在拥有的是在保存后立即加载泡菜。这毫无意义。

您可以使用os.path.isfile来确定文件是否存在。

import pickle
import os.path

class info():
    words = ['skylight','revenue']

if os.path.isfile("savefile.pickle"):
    with open("savefile.pickle","rb") as handle:
        info.words = pickle.load(handle)

item = input("Type a word: ")
info.words.append(item)

with open("savefile.pickle","wb") as handle:
    pickle.dump(info.words, handle)

print(info.words)