gpt4 book ai didi

python - 如何取消单个字节对象中的多个 pickle 项目?

转载 作者:行者123 更新时间:2023-12-01 02:03:41 24 4
gpt4 key购买 nike

This answer解释了如何取消一个文件中的多个项目

但是,我正在通过网络发送 pickle 对象。如果快速连续发送两个 pickled 对象,它们最终可能会读入同一个缓冲区。

如何使用 bytes 对象复制链接答案中的行为?是否有一个可以分割的明确定义的终止符,或者一种“推进”bytes 对象的方法?

例如:

test = pickle.dumps("hello")
test += pickle.dumps("world")

print(pickle.loads(test)) # Prints "hello" -- how do I get "world"?

最佳答案

遵循链接答案中的模式,但是 use io.BytesIO to make an in-memory file-like object ,例如:

# Changed to receive open file-like object instead of name
def load(fileobj):
while True:
try:
yield pickle.load(fileobj)
except EOFError:
break

test = pickle.dumps("hello")
test += pickle.dumps("world")

with io.BytesIO(test) as f:
for obj in load(f):
... do stuff with obj ...

关于python - 如何取消单个字节对象中的多个 pickle 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49287489/

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