📜  在 python 中压缩目录(1)

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

在 Python 中压缩目录

在 Python 中,可以使用 zipfile 模块来压缩目录。

压缩目录

下面的代码演示了如何使用 zipfile 模块来压缩目录:

import zipfile
import os

def zip_dir(path, ziph):
    """
    压缩目录
    :param path: 目录路径
    :param ziph: ZipFile 对象
    """
    # 遍历目录下的文件和子目录
    for root, dirs, files in os.walk(path):
        for file in files:
            ziph.write(os.path.join(root, file))

if __name__ == '__main__':
    # 目录路径
    path = '/path/to/dir'
    # 压缩文件路径
    zip_file = '/path/to/dir.zip'

    zipf = zipfile.ZipFile(zip_file, 'w', zipfile.ZIP_DEFLATED)
    zip_dir(path, zipf)
    zipf.close()
  • zipfile.ZipFile 创建一个 ZipFile 对象,参数 w 表示写入模式,zipfile.ZIP_DEFLATED 表示压缩算法为 deflated
  • os.walk 遍历文件和子目录。
  • ziph.write 将文件写入 ZipFile。
解压缩目录

下面的代码演示了如何使用 zipfile 模块来解压缩目录:

import zipfile
import os

def unzip_file(zip_file, extract_path):
    """
    解压缩文件
    :param zip_file: 压缩文件路径
    :param extract_path: 解压缩路径
    """
    zip_ref = zipfile.ZipFile(zip_file, 'r')
    zip_ref.extractall(extract_path)
    zip_ref.close()

if __name__ == '__main__':
    # 压缩文件路径
    zip_file = '/path/to/dir.zip'
    # 解压缩路径
    extract_path = '/path/to/extract'

    unzip_file(zip_file, extract_path)
  • zipfile.ZipFile 创建一个 ZipFile 对象,参数 r 表示只读模式。
  • zip_ref.extractall 解压缩文件。