猿问

保存并加载泡菜文件中的多个对象?

保存并加载泡菜文件中的多个对象?

我有一个课程,在游戏中为玩家服务,创造他们和其他东西。

我需要将这些播放器对象保存在一个文件中,以便以后使用它。我已经尝试过泡菜模块,但是我不知道如何保存多个对象并再次加载它们?有办法做到这一点吗?还是应该使用其他类,例如列表,并在列表中保存和加载我的对象?

有更好的办法吗?


弑天下
浏览 354回答 3
3回答

慕工程0101907

使用List、tuple或dict是迄今为止最常见的方法:import pickle PIK = "pickle.dat"data = ["A", "b", "C", "d"]with open(PIK, "wb") as f:     pickle.dump(data, f)with open(PIK, "rb") as f:     print pickle.load(f)指纹:['A', 'b', 'C', 'd']但是,一个泡菜文件能,会,可以含有任意数量的泡菜。下面是产生相同输出的代码。但请注意,它很难写和理解:with open(PIK, "wb") as f:     pickle.dump(len(data), f)     for value in data:         pickle.dump(value, f)data2 = []with open(PIK, "rb") as f:     for _ in range(pickle.load(f)):         data2.append(pickle.load(f))print data2如果您这样做,您将负责知道您所写的文件中有多少个泡菜。上面的代码是通过先选择列表对象的数量来做到这一点的。

慕妹3242003

试试这个:import picklefile = open('test.pkl','wb')obj_1 = ['test_1', {'ability', 'mobility'}]obj_2 = ['test_2', {'ability', 'mobility'}]obj_3 = ['test_3', {'ability', 'mobility'}]pickle.dump(obj_1, file)pickle.dump(obj_2, file)pickle.dump(obj_3, file)file.close()file = open('test.pkl', 'rb')obj_1 = pickle.load(file)obj_2 = pickle.load(file)obj_3 = pickle.load(file)print(obj_1)print(obj_2)print(obj_3)file.close()
随时随地看视频慕课网APP

相关分类

Python
我要回答