ZipFilePython: Python中处理ZIP文件的库

发布时间:2023-05-18

ZipFilePython 是 Python 中用于处理 ZIP 文件的内置模块,提供了压缩和解压缩文件的常用功能。下面我们将从多个方面详细介绍 ZipFilePython 模块的使用。

一、创建 ZIP 文件

ZipFilePython 模块可以用于创建 ZIP 文件。可以使用 ZipFile 类创建一个 ZIP 文件对象,然后添加文件到 ZIP 文件中。

import zipfile
# 创建一个ZIP文件对象
zip_file = zipfile.ZipFile('my_archive.zip', 'w')
# 将文件添加到ZIP文件中
zip_file.write('file1.txt')
zip_file.write('file2.txt')
# 关闭ZIP文件对象
zip_file.close()

以上代码将创建一个名为 my_archive.zip 的 ZIP 文件,并在其中添加了两个文本文件 file1.txtfile2.txt

二、解压 ZIP 文件

ZipFilePython 模块也可以用于解压 ZIP 文件。可以使用 ZipFile 类创建一个 ZIP 文件对象,然后使用 extractall() 方法将 ZIP 文件解压缩到指定的目录。

import zipfile
# 创建一个ZIP文件对象
zip_file = zipfile.ZipFile('my_archive.zip', 'r')
# 解压ZIP文件到指定目录
zip_file.extractall('/path/to/extracted/files')
# 关闭ZIP文件对象
zip_file.close()

以上代码将解压缩 my_archive.zip 文件到指定目录 /path/to/extracted/files 中。

三、获取 ZIP 文件信息

ZipFilePython 模块提供了获取 ZIP 文件及其成员信息的方法。 获取 ZIP 文件列表:

import zipfile
# 创建一个ZIP文件对象
zip_file = zipfile.ZipFile('my_archive.zip', 'r')
# 获取ZIP文件列表
zip_file_list = zip_file.namelist()
# 关闭ZIP文件对象
zip_file.close()

以上代码通过 namelist() 方法获取 ZIP 文件中的文件列表。 获取 ZIP 文件信息:

import zipfile
# 创建一个ZIP文件对象
zip_file = zipfile.ZipFile('my_archive.zip', 'r')
# 获取ZIP文件信息
zip_info = zip_file.getinfo('file1.txt')
# 打印文件信息
print(zip_info.filename)
print(zip_info.file_size)
print(zip_info.compress_size)
# 关闭ZIP文件对象
zip_file.close()

以上代码通过 getinfo() 方法获取指定文件的信息,并可以获取该文件的大小和压缩大小等信息。

四、从 ZIP 文件中读取文件内容

ZipFilePython 模块还可以从 ZIP 文件中读取文件内容。可以使用 ZipFile 类创建一个 ZIP 文件对象,并使用 read() 方法读取文件内容。

import zipfile
# 创建一个ZIP文件对象
zip_file = zipfile.ZipFile('my_archive.zip', 'r')
# 读取文件内容
file_content = zip_file.read('file1.txt', 'r')
# 打印文件内容
print(file_content)
# 关闭ZIP文件对象
zip_file.close()

以上代码将打印出 file1.txt 文件的内容。

五、从 ZIP 文件中移除文件

最后, ZipFilePython 模块还可以从 ZIP 文件中移除文件。可以使用 ZipFile 类创建一个 ZIP 文件对象,并使用 remove() 方法将指定文件从 ZIP 文件中移除。

import zipfile
# 创建一个ZIP文件对象
zip_file = zipfile.ZipFile('my_archive.zip', 'w')
# 将文件添加到ZIP文件中
zip_file.write('file1.txt')
zip_file.write('file2.txt')
# 移除指定文件
zip_file.remove('file1.txt')
# 关闭ZIP文件对象
zip_file.close()

以上代码将移除 file1.txt 文件,并将剩余的文件 file2.txt 保存到 my_archive.zip 文件中。