Python-在pickle文件中保存和加载多个对象?

我有一堂课,为游戏中的玩家提供服务,创建他们以及其他东西。

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

有没有更好的办法?

回答:

到目前为止,使用列表,元组或字典是最常见的方法:

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

如果这样做,你有责任知道所写出的文件中有多少个泡菜。上面的代码通过首先腌制列表对象的数量来做到这一点。

以上是 Python-在pickle文件中保存和加载多个对象? 的全部内容, 来源链接: utcz.com/qa/432869.html

回到顶部