我试图创建不同的对象(使用类和对象)并将它们保存在文件中以便以后编辑或检索它们。然而,这看起来如何。
GlobalCategories=[]
GlobalContent=[]
def LoadData(x,y):
import pickle
with open('bin.dat') as f:
x,y = pickle.load(f)
def SaveData(x,y):
import pickle
with open('bin.dat', 'wb') as f:
pickle.dump([x,y], f)
def Loader(x,y):
try:
LoadData(x,y)
except:
SaveData(x,y)
这个保存的片段显示了我如何保存列表中的信息(tema 是类,其他东西是该类的方法):
newtheme=Tema()
newtheme.setInfo_name(newstr)
newtheme.setInfo_code(newcode)
GlobalCategories.append(newtheme)
SaveData(GlobalContent,GlobalCategories)
X 和 Y 是我存储对象的全局列表。(我注意到它在每个对象的内存中保存方向)当我第一次运行它时,它会创建文件并将信息保存在文件中,但是如果我关闭它,尝试再次运行它并加载信息,程序删除信息,并再次创建文件,因此存储的任何内容都消失了。
我不知道这是否是存储对象的正确方法,或者是否有更好的方法,因此非常欢迎任何建议。
@abernert:谢谢阿巴纳特!我想要做的是保存一个包含两个列表的列表。例如,一个列表将保存品牌(丰田、尼桑等),另一个列表将保存汽车模型(苔原、穆拉诺)。现在每个元素都是一个对象,我在创建时添加到列表中。
newtheme=Theme()
newtheme.setInfo_name(newstr)
GlobalCategories.append(newtheme)
这就是我将对象保存在全局列表中的方式。GlobalCategories 是我在关闭程序后想要加载的两个列表之一(它就像示例中的汽车公司列表)。现在,我遇到的问题是在我关闭并重新启动程序后从列表中加载对象,因为当我没有关闭 shell 时,我能够从列表中检索和编辑它们。启动程序后,我需要将品牌和汽车对象加载并存储在相应的列表中,以便以后对其进行操作。再次感谢阿伯纳特!