我正在制作一个程序来记录用户在玩游戏时的行为,并根据该数据改进其性能{(用户在发生这种情况时采取此行动):(这样做)}。 问题是我将所有这些数据存储在一个单独模块的字典中,所以如果我关闭程序,一切都会恢复为默认值。
请告诉我是否有更好的方法来存储数据,或者永久重写程序的方法。
一如既往的感谢。
最佳答案
将其存储在文件中是一种选择。 Python 带有一个 Pickle
模块,允许您对字典进行 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
现在您拥有持久存储,而无需更改任何字典访问代码。
请注意,如果您指定的文件名已经存在,它将简单地打开它并允许您读/写,因此您不需要任何额外的逻辑来区分第一次玩游戏的玩家和玩家从上一届 session 继续。
关于python - 如何永久修改python中的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20646821/