📜  7zip python 提取 - Python (1)

📅  最后修改于: 2023-12-03 14:38:53.677000             🧑  作者: Mango

7zip Python提取 - Python

介绍

7-Zip是一个自由软件,是一个开放源码的文件归档程序,主要用于在Microsoft Windows 操作系统中处理带有高压缩比的7z格式文件,支持多种格式的文件解压。Python是一种高级编程语言,旨在提高代码的可读性和可维护性。本文将介绍如何使用Python在Windows系统中提取7-Zip压缩文件。

7-Zip Python库

7-Zip File Manager 有一个 COM (Component Object Model) 接口,使得程序可以使用7-Zip程序来压缩/解压文件。有一个Python库 py7zr, 可以利用这一接口来提取压缩文件,以及压缩文件到7z, zip 和 tar 归档文件。

安装7-Zip Python库

可以通过 pip 包管理器来安装 py7zr

pip install py7zr
提取7zip文件

使用 py7zr 提取 7zip 文件非常简单:

from py7zr import unpack_7zarchive

with unpack_7zarchive('example.7z', 'w') as fz:
    fz.extractall()

首先,导入 unpack_7zarchive 函数。然后,使用 unpack_7zarchive 函数打开 example.7z 文件,读取并提取压缩包中的所有文件到当前目录。使用 with 语句可以确保打开的文件在使用完后自动关闭。

提取压缩文件的子文件夹

我们也可以指定压缩文件中要提取的子文件夹,并将其提取到指定的目录。

from py7zr import unpack_7zarchive

with unpack_7zarchive('example.7z', 'r') as fz:
    fz.extractall(path='extract_folder', members=['sub_folder'])

以上代码将提取名为 sub_folder 的子文件夹并将其提取到名为 extract_folder 的目录中。

提取压缩文件的特定文件

如果我们只需要提取压缩文件中的一些特定文件,我们可以使用 members 参数来指定要提取的文件。

from py7zr import unpack_7zarchive

with unpack_7zarchive('example.7z', 'r') as fz:
    fz.extractall(path='extract_folder', members=['sub_folder/file1.txt', 'sub_folder/file2.txt'])

以上代码指定了要提取的两个文件,因此只会提取这两个文件到指定的目录中。

结论

使用 py7zr 库和 Python,可以轻松地从 7zip 压缩文件中提取特定的文件或文件夹。 py7zr 提供了一组简单的接口,可以使这个过程更加容易。这让我们能够更加高效地处理归档文件,而不必手动提取文件。