gpt4 book ai didi

python - 我可以让 pickle.dump 公开类似文件的对象吗?

转载 作者:太空宇宙 更新时间:2023-11-03 19:02:30 32 4
gpt4 key购买 nike

我想 pickle 用 snappy-python 压缩的对象。因为这些对象很大,所以我想使用流式传输——即 pickle.dump,而不是 pickle.dumps。

不幸的是,snappy 和 pickle API 似乎并不特别兼容:

snappy.stream_compress(src, dst, blocksize=65536)
pickle.dump(obj, file, protocol=None)

关于我需要什么魔法才能使 snappy.stream_compress(pickle.dump_magic(obj), dst)pickle.dump(obj, dst) 类似地工作,有什么想法今天有吗?

最佳答案

最简单的方法是将 pickle.dump 保存到一个文件,然后 snappy.stream_compress 该文件。

def snappy_pickle_dump(obj, f):
tmpf = ...
with open(tmpf, 'wb') as F:
pickle.dump(obj, F)
with open(f, 'wb') as OUT:
with open(tmpf, 'rb') as IN:
snappy.stream_compress(IN, OUT)
os.remove(tmpf)

如果必须避免存储整个未压缩的转储,则可以让一个线程 pickle.dump 将对象转换为 StringIO 对象,另一个线程 snappy .stream_compress它。

关于python - 我可以让 pickle.dump 公开类似文件的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15690459/

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