首页 > 代码库 > 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