如何使用Python的ZIPFILE模块压缩文件

如何使用Python的ZIPFILE模块压缩文件

压缩文件是常见的文件处理操作之一,在Python中,使用ZIPFILE模块可以轻松实现文件压缩的功能。本文将介绍如何使用Python的ZIPFILE模块来压缩文件。

更多Python文章,请阅读:Python 教程

ZIPFILE模块简介

ZIPFILE是Python标准库中的一个模块,用来读写ZIP格式的归档文件。它提供了一些方便的API,可以对ZIP文件进行压缩、解压、添加、删除等操作。

ZIPFILE模块的基本使用

压缩文件

下面是一个简单的示例,演示如何使用ZIPFILE模块来压缩文件:

import zipfile

# 创建一个 ZIP 文件
with zipfile.ZipFile('example.zip', 'w') as myzip:
    # 往 ZIP 文件中写入一个文件
    myzip.write('example.txt')

这段代码将创建一个名为example.zip的ZIP文件,并将当前目录中的example.txt文件写入到ZIP文件中。代码中使用了with语句来自动关闭文件句柄。

解压文件

下面是一个示例,演示如何使用ZIPFILE模块来解压文件:

import zipfile

# 解压 ZIP 文件
with zipfile.ZipFile('example.zip', 'r') as myzip:
    # 解压 ZIP 文件中的一个文件到当前工作目录
    myzip.extract('example.txt')

这段代码将加载名为example.zip的ZIP文件,并将其中的example.txt文件解压到当前工作目录中。

添加文件

下面是一个示例,演示如何向ZIP文件中添加文件:

import zipfile

# 打开 ZIP 文件以进行编辑
with zipfile.ZipFile('example.zip', 'a') as myzip:
    # 添加一个新文件到 ZIP 文件中
    myzip.write('new.txt')

这段代码将打开名为example.zip的ZIP文件以进行编辑,并向其中添加名为new.txt的新文件。

删除文件

下面是一个示例,演示如何从ZIP文件中删除文件:

import zipfile

# 打开 ZIP 文件以进行编辑
with zipfile.ZipFile('example.zip', 'a') as myzip:
    # 删除 ZIP 文件中的一个文件
    myzip.remove('new.txt')

这段代码将打开名为example.zip的ZIP文件以进行编辑,并从其中删除名为new.txt的文件。

获取文件列表

下面是一个示例,演示如何获取ZIP文件中的文件列表:

import zipfile

# 打开 ZIP 文件以读取内容
with zipfile.ZipFile('example.zip', 'r') as myzip:
    # 获取 ZIP 文件中的文件列表
    file_list = myzip.namelist()
    print(file_list)

这段代码将打开名为example.zip的ZIP文件以读取其内容,并获取其中的文件列表。文件列表以一个字符串列表的形式返回。

ZIPFILE模块的进阶使用

压缩目录

ZIPFILE模块不仅可以压缩单个文件,还可以压缩整个目录。下面是一个示例,演示如何压缩整个目录:

import zipfile
import os

def zipdir(dirname, zipfilename):
    # 创建 ZIP 文件
    with zipfile.ZipFile(zipfilename, 'w') as myzip:
        # 遍历目录中的所有文件
        for root, dirs, files in os.walk(dirname):
            for file in files:
                # 将文件添加到 ZIP 文件中
                myzip.write(os.path.join(root, file))

# 压缩当前工作目录
zipdir('.', 'example.zip')

这段代码将遍历当前工作目录中的所有文件,并将它们压缩到名为example.zip的ZIP文件中。在遍历目录时,代码使用了os.walk函数来遍历目录树。

加密 ZIP 文件

ZIPFILE模块支持加密ZIP文件,以保护文件内容的安全。下面是一个示例,演示如何加密ZIP文件:

import zipfile

# 创建一个加密的 ZIP 文件
with zipfile.ZipFile('example.zip', 'w', zipfile.ZIP_DEFLATED) as myzip:
    # 将文件添加到 ZIP 文件中
    myzip.write('example.txt')

    # 设置密码
    myzip.setpassword(b'secret')

这段代码将创建一个名为example.zip的ZIP文件,并将其中的example.txt文件写入到ZIP文件中。代码使用了setpassword函数来设置ZIP文件的密码,密码用字节数组形式传递。

解压加密文件

如果需要解压加密的ZIP文件,需要提供密码,下面是一个示例,演示如何解压加密的ZIP文件:

import zipfile

# 解压加密的 ZIP 文件
with zipfile.ZipFile('example.zip', 'r') as myzip:
    # 设置密码并解压 ZIP 文件中的一个文件到当前工作目录
    myzip.extract('example.txt', pwd=b'secret')

这段代码将加载名为example.zip的加密ZIP文件,并将其中的example.txt文件解压到当前工作目录中。代码使用了extract函数来解压文件,同时传递了ZIP文件的密码。

结论

本文介绍了Python中ZIPFILE模块的基本使用和进阶用法。使用这些API,我们可以方便地进行ZIP文件的压缩、解压、添加、删除等操作。同时,我们还学习了如何加密ZIP文件以及如何解压加密的ZIP文件。了解这些技巧,可以帮助我们更好地处理ZIP文件。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程