为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

摇曳的蔷薇 2019-07-27 15:15:31
保存并加载泡菜文件中的多个对象?我有一个课程,在游戏中为玩家服务,创造他们和其他东西。我需要将这些播放器对象保存在一个文件中,以便以后使用它。我已经尝试过泡菜模块,但是我不知道如何保存多个对象并再次加载它们?有办法做到这一点吗?还是应该使用其他类,例如列表,并在列表中保存和加载我的对象?有更好的办法吗?
查看完整描述

3 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞


使用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

如果您这样做,您将负责知道您所写的文件中有多少个泡菜。上面的代码是通过先选择列表对象的数量来做到这一点的。





查看完整回答
反对 回复 2019-07-28
?
慕仙森

TA贡献1827条经验 获得超8个赞

试试这个:


import pickle


file = 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()



查看完整回答
反对 回复 2019-07-28
  • 3 回答
  • 0 关注
  • 374 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信