📅  最后修改于: 2023-12-03 14:52:02.637000             🧑  作者: Mango
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.txt
和 example_folder
两个文件。我们可以使用以下代码来解压缩该文件:
import zipfile
with zipfile.ZipFile('example.zip', 'r') as zip_ref:
zip_ref.extractall('extracted_files')
运行上述代码会创建一个名为 extracted_files
的文件夹,并将 example.txt
和 example_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
来解决。