我做了一个课程来挑选和解开字典中的数据。它相当标准:它试图打开文件,如果文件不存在则创建文件并提供从字典中读取并写入字典的方法。
但是,当使用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]