题
是否有可能列出LZMA文件(.7zip)的内容,而无需解压缩整个文件?另外,我可以从LZMA文件中提取一个文件?
我的问题:我有一个30GB的.7z压缩文件进行解压到> 5TB。我想操纵原始.7z压缩文件,而无需做了充分的解压缩。
解决方案
是。开始 XZ utils的。有Perl和Python的API。
您可以找到你的头所需的文件。每个文件分开进行压缩,这样你就可以只提取你想要的。
其他提示
从LZMA SDK下载文件lzma922.tar.bz2 Sourceforge上的页面,然后解压缩文件并打开C /的Util / 7Z / 7zMain.c。在那里,你会发现程序中提取从.7z压缩特定的档案文件。你并不需要从所有提取所有数据项,示例代码演示如何只提取你感兴趣的人。同样的代码有逻辑列表中的条目,而不提取所有的压缩数据。
我通过安装7zip的解决了这个问题( https://www.7-zip.org/一>),并使用参数升。例如:
7z l file.7z
输出具有一些描述性信息,并在压缩文件的文件列表。然后,我使用子进程库调用该内部蟒:
import subprocess
output = subprocess.Popen(["7z","l", "file.7z"], stdout=subprocess.PIPE)
output = output.stdout.read().decode("utf-8")
不要忘记,以确保该计划的7z是在PATH变量访问。我不得不这样做手工在Windows中。
不隶属于 StackOverflow