如何在python中永久修改字典?

时间:2013-12-17 23:31:00

标签: python database data-structures dictionary

我正在创建一个程序,记录用户在玩游戏时的行为,并根据该数据改善其性能{(用户在发生这种情况时进行此操作):(执行此操作)}。 问题是我将所有数据存储在单独模块中的字典中,因此如果我关闭程序,一切都将返回默认值。

请告诉我是否有更好的方法来存储数据,或者是永久重写程序的方法。

一如既往地谢谢。

1 个答案:

答案 0 :(得分:3)

将其存储在文件中是一种选择。 Python附带了一个Pickle模块,允许您挑选字典。然后将它本地存储在磁盘上,然后当你需要再次加载它时,使用Pickle在它们再次启动游戏时加载它。

编辑:

正如@alko所建议的,shelve模块在​​您的案例中是更好的选择,因为您使用的数据已经是字典。

例如,假设您有一些看起来像

的代码
data = {}
data["coords"] = [1,2]

只需更改一行并添加另一行(可能过度简化),即可轻松将其转换为shelf

data = shelve.open("some_filename") # create a shelf instead
data["coords"] = [1,2]
data.close()                        # remember to close it

现在您拥有持久存储而无需更改任何字典访问代码。

请注意,如果您指定的文件名已存在,则只需打开它并允许您进行读/写,因此您不需要任何其他逻辑来区分第一次玩游戏的玩家和玩家从前一届会议开始。