在Kivy中存储玩家数据

时间:2017-06-29 07:22:42

标签: android python python-2.7 kivy pickle

我做了一个课程来挑选和解开字典中的数据。它相当标准:它试图打开文件,如果文件不存在则创建文件并提供从字典中读取并写入字典的方法。

但是,当使用buildozer打包为APK时(我确保在编译之前删除数据文件),有时数据会在设备上随机丢失,如果您通过android更新程序更新应用程序,则所有数据都将丢失。我不知道数据文件的位置,但我认为它保存在APK中。任何人都可以提供解决方案吗?

我使用的是Python 2和Kivy 1.10以及内置的pickle模块。提前致谢

我的pickler的代码如下:

import pickle 
class Data(object):
  def __init__(self,fname):
    try: 
      f = open(fname,'r')
      p = pickle.load(f)
      f.close() 
    except IOError:
      f = open(fname,'w')
      pickle.dump({'highscore':0},f)
      f.close() p = {'highscore':0}
    self.fname = fname
    self.data = p 
  def rewrite(self,key,value):
    new = self.data
    new[key] = value
    f = open(self.fname,'w')
    pickle.dump(new,f)
    f.close() 
    self.data = new
  def grab(self,key):
    with open(self.fname,'r') as f:
      self.data = pickle.load(f)  
      return self.data[key]

0 个答案:

没有答案