首页 > 代码库 > Python zipfile
Python zipfile
ZipFile类
ZipFile.close()
在退出程序之前必须调用ZipFile.close()关闭zip文件,否则所做的修改将不会被保存
ZipFile.getinfo(name)
获取zip文件内的文件信息,返回一个ZipFile.Info()对象
1 >>> z = zipfile.ZipFile(os.path.join(os.getcwd(), ‘channel.zip‘))2 >>> z3 <zipfile.ZipFile object at 0x7f36e4517050>4 >>> z.getinfo(‘109.txt‘)5 <zipfile.ZipInfo object at 0x7f36e5bdd500>
ZipFile.infolist()
获取zip文件内的所有文件,返回一个ZipFIle.Info()对象
# -*- coding: utf-8 -*-import zipfilez = zipfile.ZipFile(‘channel.zip‘)print z.infolist()for i in z.infolist(): print i.file_size, i.header_offset, i.filename#output#[<zipfile.ZipInfo object at 0x7f299925b050>, <zipfile.ZipInfo object at 0x7f299925b118>,....#21 0 29.txt#21 59 100.txt#21 119 109.txt#21 179 176.txt
ZipFile.namelist()
返回zip内所有文件的文件名序列
ZipFIle.extract(member, path=None, pwd=None)
以指定的模式解压一个zip文件,member是指定的文件名
1 import zipfile2 z = zipfile.ZipFile(‘channel.zip‘)3 z.extract(‘readme.txt‘, path=‘/tmp/test/‘)4 z.close()
ZipFile.extractall(path=None, members=None, pwd=None)
解压zip文件内的所有文件到当前目录,members默认为所有文件,path默认为当前目录,pwd默认为空
ZipFile.printdir()
列出zip文件内的文件信息,包括文件名,修改时间和文件大小
ZipFile.setpassword(pwd)
设置密码
ZipFile.read(name, pwd)
返回压缩文件中指定文件的二进制数据。把zip文件中的数据分别保存到当前目录下的文件中
1 # -*- coding: utf-8 -*- 2 import zipfile 3 4 z = zipfile.ZipFile(‘/tmp/example.zip‘, ‘r‘) 5 for filename in z.namelist(): 6 data =http://www.mamicode.com/ z.read(filename) 7 file = open(‘read.txt‘, ‘a‘) 8 file.write(data) 9 file.close()10 11 z.close()
ZipFile.write(filename, arcname=None, compress_type=None)
把文件名为filename的文件添加到压缩文件之中,arcname为压缩包里的文件的名字,默认为filename,compress_type为压缩方法,可以是ZIP_STORED,ZIP_DEFLATED
1 # -*- coding: utf-8 -*-2 3 import zipfile4 z = zipfile.ZipFile(‘test.zip‘, ‘w‘)5 z.write(‘read.txt‘, ‘hello.txt‘, zipfile.ZIP_DEFLATED)6 z.close()
ZipFile.comment
与ZIP文件相关联的注释文本,如果指定了‘a‘或‘w‘模式来创建一个ZIp实例,那么该字符串的长度不应超过65535字节,超过会被截断。
1 # -*- coding: utf-8 -*- 2 import zipfile 3 import re 4 5 z = zipfile.ZipFile(‘channel.zip‘) 6 number = ‘90052‘ 7 zpp = [] 8 9 try:10 while number:11 text = z.read(‘%s.txt‘ % number)12 number = re.search(‘Next nothing is (\d+)‘, text).group(1)13 print text14 zpp.append(number)15 except:16 print z.read(‘%s.txt‘ % number)17 18 print ‘‘.join([z.getinfo(‘%s.txt‘ % p).comment for p in zpp])
ZipInfo类
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: 获取未压缩的文件大小。
from:http://blog.csdn.net/jgood/article/details/4351911#zipinfo
Python zipfile