Python 压缩zip

在日常开发中,我们经常会遇到需要将多个文件或文件夹打包成一个压缩文件的需求。Python提供了一个内置模块zipfile来实现这个功能。本文将为大家介绍如何使用Python的zipfile模块来压缩和解压zip文件,并提供一些常用的示例代码。

压缩zip文件

首先,我们需要导入zipfile模块:

import zipfile

创建一个压缩文件

使用zipfile.ZipFile类创建一个新的zip文件。你可以指定文件的名称和打开模式(默认为'r',只读模式)。

with zipfile.ZipFile('my_archive.zip', 'w') as myzip:
    myzip.write('file1.txt')
    myzip.write('file2.txt')
    myzip.write('dir1')

以上代码将创建一个名为my_archive.zip的新压缩文件,并添加了两个文件file1.txtfile2.txt,以及一个文件夹dir1。注意,在使用write方法添加文件或文件夹时,它们将被添加到压缩文件的根目录下。

添加文件到已有压缩文件

如果你已经有一个已存在的zip文件,你可以使用'a'模式(追加模式)打开它,并向其中添加新的文件。

with zipfile.ZipFile('my_archive.zip', 'a') as myzip:
    myzip.write('file3.txt')

上述代码将向my_archive.zip压缩文件中添加一个名为file3.txt的文件。

压缩整个文件夹

你还可以使用write方法来压缩整个文件夹。

with zipfile.ZipFile('my_archive.zip', 'w') as myzip:
    myzip.write('my_folder')

上述代码将压缩名为my_folder的文件夹,并将其添加到my_archive.zip压缩文件中。

解压zip文件

使用zipfile.ZipFile类的extractall方法可以将整个zip文件解压到指定的目标路径下。

with zipfile.ZipFile('my_archive.zip', 'r') as myzip:
    myzip.extractall('extracted_folder')

以上代码将my_archive.zip解压到名为extracted_folder的目标文件夹中。

如果要只解压压缩文件中的部分文件,可以使用extract方法,并指定要解压的文件名。

with zipfile.ZipFile('my_archive.zip', 'r') as myzip:
    myzip.extract('file1.txt', 'extracted_folder')

上述代码将只解压my_archive.zip压缩文件中的file1.txt文件,并将其放在extracted_folder目标文件夹中。

总结

本文介绍了如何使用Python的zipfile模块来压缩和解压zip文件。我们学习了如何创建一个新的压缩文件,添加文件到已有压缩文件,压缩整个文件夹,以及解压zip文件到指定的目标路径下。希望本文对你在日常开发中处理压缩文件的需求有所帮助。

更多关于zipfile模块的方法和属性,请参考官方文档:[