用PyLZMA减压

2024-06-02 09:37:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我用这个脚本压缩我的文件

import pylzma, struct
i = open(path+fileName,'rb')
o = open(path+zipName+'.zip','wb')
data = i.read()
c = pylzma.compressfile(data, eos=1)
result = c.read(5)
result += struct.pack('<Q', len(data))
o.write(result + c.read())
i.close()
o.close()

我使用这个方法,如PyLZMA documentation所示,因为它允许7zip或lzma.exe. 使用7zip进行解压很好,但当我使用PyLZMA时就不起作用了。我用这个:

^{pr2}$

它停止了pylzma.减压我收到以下错误:

TypeError: Error while decompressing: 1


Tags: 文件pathimport脚本closereaddataresult
1条回答
网友
1楼 · 发布于 2024-06-02 09:37:07

如果我正确地读取了documentation(我在安装PyLZMA时遇到了问题,因此无法验证),compress()将输出一个decompress()可以处理的字符串。在

但是,为了使压缩字符串与其他实用程序兼容,有必要在前5个字节和其余压缩数据之间插入8个字节的长度。在

因此,如果你想用PyLZMA解压数据,我怀疑你需要手动删除这个8字节长的字段(最快的方法可能是打开输入文件,读取5个字节,跳过8个,然后读取文件的其余部分)。在

相关问题 更多 >