gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 20:27:54 32 4
gpt4 key购买 nike

我有一个类为游戏中的玩家服务,创建他们和其他东西。

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

有没有更好的办法?

最佳答案

Tim Peters' accepted answer 的两个补充.

首先,如果在文件末尾停止加载,则无需单独存储 pickle 的项目数:

def loadall(filename):
with open(filename, "rb") as f:
while True:
try:
yield pickle.load(f)
except EOFError:
break

items = loadall(myfilename)

这假设文件只包含 pickle ;如果里面还有其他东西,生成器会尝试将里面的其他东西也视为 pickle ,这可能很危险。

第二,这样你得到的不是列表而是generator .这一次只会将一项加载到内存中,这很有用如果转储的数据非常大 - 您可能的一个可能原因一开始就想分别 pickle 多个项目。您仍然可以使用 for 循环遍历 items,就好像它是一个列表。

关于python - 在 pickle 文件中保存和加载多个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20716812/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com