使用 py7zlib 解压 7z 存档会给出 *** ValueError: data error during decompression during decompression
Posted
技术标签:
【中文标题】使用 py7zlib 解压 7z 存档会给出 *** ValueError: data error during decompression during decompression【英文标题】:Decompressing 7z archive using py7zlib gives *** ValueError: data error during decompression 【发布时间】:2013-11-26 13:51:43 【问题描述】:我的代码如下(来自这里:Example of how to use PyLZMA)
import py7zlib
...
#filename.__class__ is <class 'django.core.files.uploadedfile.InMemoryUploadedFile'>
archive = py7zlib.Archive7z(filename)
data = archive.getmember(archive.getnames()[0]).read()
我得到的错误是:
*** ValueError: data error during decompression
我正在测试的存档是从制造商网站下载的 7z 压缩驱动程序。我还使用 7zip 创建了一个 7z 存档进行测试,但我得到了相同的结果。
【问题讨论】:
根据经验,最好先尝试使用 py7zlib 进行压缩,然后“立即”解压缩。这将使您了解如何使用代码,我没有使用 py7zlib 执行此操作 - 而是使用其他库 我遇到了同样的问题。你能弄清楚吗? 我只是尝试重新创建问题,但是没有原始文件,我无法复制此问题。我刚刚尝试了一个自生成的 7z 文件,我得到了py7zlib.FormatError: not a 7z file
。使用驱动程序文件,它似乎可以工作。
【参考方案1】:
我建议你先打开你的文件,然后使用'py7zlib'
包。我已使用此方法成功读取文件。
content=open(filename,"rb")
archive = py7zlib.Archive7z(content)
data = archive.getmember(archive.getnames()[0]).read()
【讨论】:
以上是关于使用 py7zlib 解压 7z 存档会给出 *** ValueError: data error during decompression during decompression的主要内容,如果未能解决你的问题,请参考以下文章
命令行创建两个文件夹的 7z 存档和一个文件以自解压到指定位置