我有一个职业,在游戏中为玩家服务,创造他们和其他东西.
我需要将这些播放器对象保存在一个文件中,以便以后使用.我try 过pickle模块,但我不知道如何保存多个对象并再次加载它们?有没有办法做到这一点,或者我应该使用列表等其他类,并在列表中保存和加载我的对象?
有更好的办法吗?
我有一个职业,在游戏中为玩家服务,创造他们和其他东西.
我需要将这些播放器对象保存在一个文件中,以便以后使用.我try 过pickle模块,但我不知道如何保存多个对象并再次加载它们?有没有办法做到这一点,或者我应该使用列表等其他类,并在列表中保存和加载我的对象?
有更好的办法吗?
使用列表、元组或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']
然而,pickle文件can包含任意数量的pickle.下面是产生相同输出的代码.但请注意,书写和理解起来更难:
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
如果你这样做,你就有责任知道你写的文件里有多少腌菜.上面的代码通过首先清除列表对象的数量来实现这一点.