gpt4 book ai didi

python - 如何扩充部分 zlib 文件

转载 作者:太空狗 更新时间:2023-10-29 21:21:01 25 4
gpt4 key购买 nike

我有一个文件的前 2/3 部分是用 zlib 的 deflate() 函数压缩的。最后的 1/3 在传输中丢失了。原始未压缩文件为 600KB。

发送器多次调用 Deflate,同时将原始文件切成 2KB 的 block 大小,并在传递 Z_FINISH 时传递 Z_NO_FLUSH 直到文件末尾。生成的完整压缩文件已传输,但如前所述部分丢失。

是否可以恢复部分原始文件?如果是这样,有什么建议吗?

我正在使用 ZLIB 的纯 C 实现和/或 ZLIB 的 Python 2.7 实现。

最佳答案

虽然我不懂 python,但我设法让它工作:

#!/usr/bin/python
import sys
import zlib
f = open(sys.argv[1], "rb")
g = open(sys.argv[2], "wb")
z = zlib.decompressobj()
while True:
buf = z.unconsumed_tail
if buf == "":
buf = f.read(8192)
if buf == "":
break
got = z.decompress(buf)
if got == "":
break
g.write(got)

这应该会从您的部分 zlib 文件中提取所有可用的内容。

关于python - 如何扩充部分 zlib 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20620374/

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