Python实现批量压缩文件文件夹——zipfile

Python015

Python实现批量压缩文件文件夹——zipfile,第1张

zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的,

在这里对zipfile的使用方法做一些记录。即方便自己也方便别人。

Python zipfile模块用来做zip格式编码的压缩和解压缩的,要进行相关操作,首先需要实例化一个 ZipFile 对象。ZipFile 接受一个字符串格式压缩包名称作为它的必选参数,第二个参数为可选参数,表示打开模式,类似于文件操作,有r/w/a三种模式,分别代表读、写、添加,默认为r,即读模式。

zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要使用这两个class就可以了。ZipFile是主要的类,用来创建和读取zip文件而ZipInfo是存储的zip文件的每个文件的信息的。

ZipFile还提供了如下常用的方法和属性:

获取zip文档内指定文件的信息。返回一个zipfile.ZipInfo对象,它包括文件的详细信息。

获取zip文档内所有文件的信息,返回一个zipfile.ZipInfo的列表。

获取zip文档内所有文件的名称列表。

将zip文档内的指定文件解压到当前目录。参数member指定要解压的文件名称或对应的ZipInfo对象;参数path指定了解析文件保存的文件夹;

解压zip文档中的所有文件到当前目录。参数members的默认值为zip文档内的所有文件名称列表,也可以自己设置,选择要解压的文件名称。

将zip文档内的信息打印到控制台上。

设置zip文档的密码。

import

StringIOimport

gzipcompresseddata

=

gzip方式压缩的字符串(html)compressedstream

=

StringIO.StringIO(compresseddata)gzipper

=

gzip.GzipFile(fileobj=compressedstream)data

=

gzipper.read()

#

data就是解压后的数据一个简单的例子1

import

urllib2

2

from

StringIO

import

StringIO

3

import

gzip

4

5

def

loadData(url):

6

request

=

urllib2.Request(url)

7

request.add_header('Accept-encoding',

'gzip')

8

response

=

urllib2.urlopen(request)

9

if

response.info().get('Content-Encoding')

==

'gzip':10

print

'gzip

enabled'11

buf

=

StringIO(response.read())12

f

=

gzip.GzipFile(fileobj=buf)13

data

=

f.read()14

else:15

data

=

response.read()16

return

data