Zipfile

#-*- coding:utf_8 -*-
import zipfile,os
z=zipfile.ZipFile('out1.zip','r')
print z.namelist() #返回压缩包内所有文件名的列表
for i in z.infolist(): #每个文件的信息
        print i.file_size, i.header_offset,hex(i.CRC) #文件大小,文件数据在压缩包中的偏移,CRC
print z.getinfo('data.txt').CRC #指定文件的信息,此处为CRC
'''
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: 获取未压缩的文件大小。
'''

ZipFile.printdir()
#将zip文档内的信息打印到控制台上。
ZipFile.setpassword(pwd)
#设置zip文档的密码。
ZipFile.read(name[, pwd])

#读
zipFile = zipfile.ZipFile(os.path.join(os.getcwd(), 'txt.zip'))
data = zipFile.read('txt.txt')
(lambda f, d: (f.write(d), f.close()))(open(r'd:/txt.txt', 'wb'), data) 
zipFile.close()
ZipFile.write(filename[, arcname[, compress_type]])
#写
zipFile = zipfile.ZipFile(r'D:/test.zip', 'w')
zipFile.write(r'D:/test.doc', 'ok.doc', zipfile.ZIP_DEFLATED)
zipFile.close()
ZipFile.writestr(zinfo_or_arcname, bytes)