gpt4 book ai didi

python - 寻找 pickle 数据

转载 作者:行者123 更新时间:2023-12-01 07:58:56 25 4
gpt4 key购买 nike

是否可以在Python中跳转到pickled文件中的特定记录?

例如:

import pickle

with open ('BinaryFile.dat', mode='wb') as MyFile:
pickle.dump('Item1', MyFile)
pickle.dump('Item2', MyFile)
pickle.dump('Item3', MyFile)
pickle.dump('Item4', MyFile)
pickle.dump('Item5', MyFile)

with open('BinaryFile.dat', mode='rb') as MyReadFile:
MyReadFile.seek(3)
print(pickle.load(MyReadFile))

给出_pickle.UnpicklingError:无效的加载 key ,'\x05'。

seek 是否适用于选取的数据?我需要多次调用 pickle.load(MyReadFile) 吗?

最佳答案

Pickle 记录可以连接到一个文件中,所以是的,您可以多次 pickle.load(f) ,但文件本身并没有以一种可以让您查找的方式建立索引给定的记录。

你的f.seek(3)正在做的是寻找文件中的第三个字节,它位于pickle记录的中间,因此是不可 pickle 。

如果您需要随机访问,您可能需要查看 built-in shelve module它使用数据库文件模块在 pickle 之上构建了一个类似字典的界面。

(另一种简单的方法是简单地拥有一个充满 pickle 文件的目录。)

关于python - 寻找 pickle 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55809976/

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