欢迎访问宙启技术站
智能推送

Python中使用zipfile模块进行文件压缩和解压缩的方法

发布时间:2023-12-17 04:17:51

在Python中,我们可以使用zipfile模块来进行文件的压缩和解压缩。zipfile模块提供了一些方便的方法来创建、打开和操作ZIP压缩文件。

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

import zipfile

## 创建ZIP压缩文件

要创建ZIP压缩文件,我们可以使用zipfile.ZipFile类的构造函数,指定要创建的ZIP文件的名称和打开模式。可以使用"r"表示只读模式,"w"表示写入模式,"a"表示追加模式。例如,下面的代码创建了一个名为example.zip的ZIP文件:

zf = zipfile.ZipFile("example.zip", "w")

接下来,我们可以使用write方法来向ZIP文件中添加文件。write方法接受两个参数, 个参数是要添加的文件路径,第二个参数是添加到ZIP文件中的文件名。例如,下面的代码将当前目录下的file1.txtfile2.txt添加到ZIP文件中:

zf.write("file1.txt", "file1.txt")
zf.write("file2.txt", "file2.txt")

最后,我们应该关闭ZIP文件,以确保所有的数据都被写入文件中:

zf.close()

## 解压缩ZIP文件

要解压缩ZIP文件,我们可以使用zipfile.ZipFile类的构造函数,指定要打开的ZIP文件的名称和打开模式。例如,下面的代码打开了名为example.zip的ZIP文件:

zf = zipfile.ZipFile("example.zip", "r")

使用extractall方法可以将ZIP文件中的所有文件解压缩到指定的目录中。例如,下面的代码将ZIP文件中的所有文件解压缩到当前目录下的output目录中:

zf.extractall("output")

如果只想解压缩ZIP文件中的特定文件,可以使用extract方法。extract方法接受两个参数, 个参数是要解压缩的文件名,第二个参数是要保存解压缩文件的路径。例如,下面的代码将ZIP文件中的file1.txt解压缩到当前目录下的output目录中:

zf.extract("file1.txt", "output")

最后,我们应该关闭ZIP文件:

zf.close()

使用with语句可以更方便地确保ZIP文件在使用完成后被关闭,例如:

with zipfile.ZipFile("example.zip", "r") as zf:
    zf.extractall("output")

这样无论是正常运行还是发生异常,都会自动关闭ZIP文件。

以上就是使用zipfile模块进行文件压缩和解压缩的方法。通过这些简单的方法,我们可以方便地在Python中进行ZIP文件的操作。