如何在 Python 中压缩和解压缩文件?

在 Python 中,您可以使用内置的 zipfile 模块来压缩和解压缩文件。zipfile 提供了对 ZIP 格式的支持,包括创建、读取、追加和解压 ZIP 文件。以下是如何使用 zipfile 来进行压缩和解压缩的示例。
压缩文件:

import zipfile

def compress_file(zip_filename, files_to_compress):
    # 创建一个 zip 文件并将文件添加到其中
    with zipfile.ZipFile(zip_filename, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for file in files_to_compress:
            zipf.write(file, arcname=file.split('/')[-1])  # arcname 用于定义压缩包中保存的文件名

# 使用示例
files = ['file1.txt', 'file2.txt']  # 要压缩的文件列表
compress_file('archive.zip', files)

解压缩文件:

import zipfile

def decompress_file(zip_filename, extract_to_dir):
    # 解压 ZIP 文件
    with zipfile.ZipFile(zip_filename, 'r') as zipf:
        zipf.extractall(extract_to_dir)  # 解压到指定目录

# 使用示例
decompress_file('archive.zip', './extracted_files')

详细说明:

    压缩文件:
        使用 zipfile.ZipFile 打开(创建)一个 zip 文件,模式 'w' 表示写模式。
        zipf.write() 方法将文件添加到压缩包中。arcname 参数指定压缩包中保存的文件名(如果不使用 arcname,压缩包中的文件将使用完整的路径)。
    解压缩文件:
        使用 zipfile.ZipFile 以 'r' 模式打开一个压缩文件(读取模式)。
        zipf.extractall() 解压文件到指定目录(默认为当前目录)。

其他功能:

    列出压缩包中的文件:

with zipfile.ZipFile('archive.zip', 'r') as zipf:
    print(zipf.namelist())  # 输出压缩包中的所有文件名

解压单个文件:

    with zipfile.ZipFile('archive.zip', 'r') as zipf:
        zipf.extract('file1.txt', './extracted_files')  # 解压指定文件

备注:

    zipfile.ZIP_DEFLATED 是默认的压缩方法,它是基于 DEFLATE 算法的压缩方法。如果不指定,zipfile 会自动使用它。
    zipfile.ZipFile 还支持其他操作,如追加文件、读取文件内容等。

这样,您可以轻松地使用 zipfile 模块来进行文件的压缩和解压缩操作。

请使用浏览器的分享功能分享到微信等