简介

zipfile是一个用来压缩文件和解压缩文件的模块,它有两个常用的类,分别是ZipFile和ZipInfo。
其中ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息的。

如果我们想要压缩或解压缩,首先要实例化一个 ZipFile 对象。ZipFile 的构造方法有两个参数,第一个参数是必选参数,接受一个字符串格式的压缩包名称,第二个参数为可选参数,表示打开模式,类似于文件操作,有r/w/a三种模式,分别代表读、写、添加,默认为r,即读模式。压缩使用w,解压缩使用r。

压缩:

创建一个zip文件对象,压缩是需要把mode改为‘w’
zfile=zipfile.ZipFile("test.zip","w")

将文件写入zip文件中,即将文件压缩
zfile.write(r"../test.py")

将zip文件对象关闭
zfile.close()

解压

zfile=zipfile.ZipFile("../test.zip","r")
zfile.extractall()

ZipFile相关方法及属性

ZipFile.getinfo(name) 方法返回的是一个ZipInfo对象,表示zip文档中相应文件的信息。它支持如下属性:

ZipInfo.filename: 获取文件名称。

ZipInfo.date_time: 获取文件最后修改时间。返回一个包含6个元素的元组:(年, 月, 日, 时, 分, 秒)

ZipInfo.compress_type: 压缩类型。

ZipInfo.comment: 文档说明。

ZipInfo.extr: 扩展项数据。

ZipInfo.create_system: 获取创建该zip文档的系统。

ZipInfo.create_version: 获取 创建zip文档的PKZIP版本。

ZipInfo.extract_version: 获取 解压zip文档所需的PKZIP版本。

ZipInfo.reserved: 预留字段,当前实现总是返回0。

ZipInfo.flag_bits: zip标志位。

ZipInfo.volume: 文件头的卷标。

ZipInfo.internal_attr: 内部属性。

ZipInfo.external_attr: 外部属性。

ZipInfo.header_offset: 文件头偏移位。

ZipInfo.CRC: 未压缩文件的CRC-32。

ZipInfo.compress_size: 获取压缩后的大小。

ZipInfo.file_size: 获取未压缩的文件大小。

ZipInfo相关属性

ZipInfo.filename        获取文件名称。

ZipInfo.date_time       获取文件最后修改时间。返回一个包含6个元素的元组:(年, 月, 日, 时, 分, 秒)

ZipInfo.compress_type   压缩类型。

ZipInfo.comment         文档说明。

ZipInfo.extr            扩展项数据。

ZipInfo.create_system   获取创建该zip文档的系统。

ZipInfo.create_version  获取、创建zip文档的PKZIP版本。

ZipInfo.extract_versio  获取、解压zip文档所需的PKZIP版本。

ZipInfo.reserved        预留字段,当前实现总是返回0。

ZipInfo.flag_bits       zip标志位。

ZipInfo.volume          文件头的卷标。

ZipInfo.internal_attr   内部属性。

ZipInfo.external_attr   外部属性。

ZipInfo.header_offset   文件头偏移位。

ZipInfo.CRC             未压缩文件的CRC-32。

ZipInfo.compress_size   获取压缩后的大小。

ZipInfo.file_size       获取未压缩的文件大小