1

是否可以在不解压缩整个文件的情况下列出 LZMA 文件 (.7zip) 的内容?另外,我可以从 LZMA 文件中提取单个文件吗?

我的问题:我有一个 30GB 的 .7z 文件,解压缩到 >5TB。我想操作原始 .7z 文件而不需要完全解压缩。

4

3 回答 3

1

是的。从XZ Utils开始。有 Perl 和 Python API。

您可以从标题中找到所需的文件。每个文件都单独压缩,因此您可以只提取您想要的文件。

于 2010-04-13T14:45:23.367 回答
0

从 Sourceforge 上的 LZMA SDK 文件页面下载 lzma922.tar.bz2,然后解压文件并打开 C/Util/7z/7zMain.c。在那里,您将找到从 .7z 存档中提取特定存档文件的例程。您不需要从所有条目中提取所有数据,示例代码显示了如何仅提取您感兴趣的条目。相同的代码具有列出条目而不提取所有压缩数据的逻辑。

于 2011-05-26T20:05:19.570 回答
0

我通过安装 7zip ( https://www.7-zip.org/ ) 并使用参数 l 解决了这个问题。例如:

7z l file.7z

输出有一些描述性信息和压缩文件中的文件列表。然后,我使用子进程库在 python 内部调用它:

import subprocess
output = subprocess.Popen(["7z","l", "file.7z"], stdout=subprocess.PIPE)
output = output.stdout.read().decode("utf-8")

不要忘记确保程序 7z 可以在您的 PATH 变量中访问。我必须在 Windows 中手动执行此操作。

于 2019-07-09T15:54:05.937 回答