ZIP文件即压缩包,python的zipfile模块可以很容易地实现ZIP文件的读取、解压和创建。


目录

  • 读取
  • 解压
  • 创建



使用前需要导入

zipfile模块。

import zipfile

读取

首先,通过zipfile.ZipFile()函数,创建ZipFile对象。

f = zipfile.ZipFile('filename.zip')

接下来,可以通过namelist()方法获取压缩包中的所有文件和文件夹名称列表。

f.namelist()

压缩包中的文件可以通过getinfo()方法传递给特定文件的ZipFile对象。

f1 = f.getinfo('hello.txt')   # hello.txt为压缩包中的一个文件
f1.file_size
f1.compress_size

f表示整个压缩包的对象,而f1表示压缩包中一个文件的对象。f1的属性file_size表示原来文件的大小,而compress_size表示压缩后文件的大小。
最后关闭文件。

f.close()

解压

ZipFile对象的extractall()方法解压ZIP文件,压缩包中的文件都放到当前目录中。

f.extractall()

也可以向该方法传递一个文件夹名称,它将解压后的文件都放到这个文件夹中。

f.extractall('good')

如果需要解压单个文件,则要用到extract()方法。

f.extarct('hello.txt')  # hello.txt为压缩包中的一个文件

也可以向该方法传递第二个参数,表示解压的文件夹。

f.extarct('hello.txt', 'goodone')  # hello.txt为压缩包中的一个文件

创建

如果需要压缩为ZIP文件,则需要以写模式打开ZipFile对象,即传入w作为第二个参数。

f = zipfile.ZipFile('filename.zip', 'w')

向该对象的write()方法传入一个路径名,即可压缩这个路径名所指的文件。该方法的第二个参数表示压缩算法。

f = write('good.txt', compress_type=zipfile.ZIP_DEFLATED)

如果需要将文件添加到已有的压缩文件中,则需要以添加模式打开这个ZIP文件。

f = zipfile.ZipFile('filename.zip', 'a')