码迷,mamicode.com
首页 > 编程语言 > 详细

Python zipfile

时间:2015-01-29 23:57:25      阅读:460      评论:0      收藏:0      [点我收藏+]

标签:

ZipFile类

ZipFile.close()

在退出程序之前必须调用ZipFile.close()关闭zip文件,否则所做的修改将不会被保存

 

ZipFile.getinfo(name)

获取zip文件内的文件信息,返回一个ZipFile.Info()对象

1 >>> z = zipfile.ZipFile(os.path.join(os.getcwd(), channel.zip))
2 >>> z
3 <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 zipfile

z = 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 zipfile
2 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 = 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 zipfile
4 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 text
14         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

标签:

原文地址:http://www.cnblogs.com/hackxt/p/4261181.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!