📜  如何使用 zipfile 模块 python 解压缩文件(1)

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

如何使用 zipfile 模块 python 解压缩文件

Python 中的 zipfile 模块提供了一种方便的方式来进行 ZIP 文件的创建、读取和解压缩。本文将介绍如何使用该模块来解压缩 ZIP 文件。

基本语法
import zipfile

with zipfile.ZipFile('file.zip', 'r') as zip_ref:
    zip_ref.extractall('path/to/extract')

上述代码中,我们使用 with 语句来打开 ZIP 文件并解压缩其中的所有文件。参数 "file.zip" 是要解压缩的 ZIP 文件的路径,参数 "path/to/extract" 是解压缩后要保存文件的目标路径。

示例

假设我们有一个名为 example.zip 的 ZIP 文件,包含 example.txtexample_folder 两个文件。我们可以使用以下代码来解压缩该文件:

import zipfile

with zipfile.ZipFile('example.zip', 'r') as zip_ref:
    zip_ref.extractall('extracted_files')

运行上述代码会创建一个名为 extracted_files 的文件夹,并将 example.txtexample_folder 文件解压缩到该文件夹中。

处理文件名编码问题

有时候,ZIP 文件中的文件名可能包含非 ASCII 字符,解压缩时可能会出现编码问题。例如,如果 ZIP 文件中包含一个名为 我是中文.txt 的文件,解压缩时可能会遇到以下错误:

UnicodeDecodeError: 'cp932' codec can't decode byte 0xc1 in position 0: illegal multibyte sequence

为了避免这种情况,我们可以通过在 ZipFile 构造函数中传入参数 encoding='cp437',来指定 ZIP 文件中的文件名编码方式。例如:

import zipfile

with zipfile.ZipFile('example.zip', 'r', encoding='cp437') as zip_ref:
    zip_ref.extractall('extracted_files')
结论

在 Python 中,使用 zipfile 模块可以方便地进行 ZIP 文件的读写操作。通过 with 语句打开 ZIP 文件,并使用 extractall() 方法解压缩其中的所有文件。如果遇到文件名编码问题,可以在 ZipFile 构造函数中传入参数 encoding 来解决。