Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26268688
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Python/Ruby

2010-04-21 21:31:32

python中的gzip模块

 

class GzipFile(

[filename[, mode[, compresslevel[, fileobj]]]])

调用示例:

g = gzip.GzipFile(filename='', mode='wb', compresslevel=9, fileobj=open(r'r:\test.log.gz','wb'))

 

调用示例:

import gzip

g = gzip.GzipFile(filename='', mode='wb', compresslevel=9, fileobj=open(r'E:\test.log.gz','wb'))

g.write(open(r'E:\a.txt').read())       #读取我们要压缩的文件E:\a.txt

g.close()

含义:gzip.GzipFile 表示的是创建了这么一个GZIP对象。可以用这个对象的write方法往压缩文件里面去写内容。

那写什么内容呢。写的就是 open(r'E:\a.txt').read() 的内容了!

 

解压缩的方法:

g = gzip.GzipFile(mode='rb', fileobj=open(r'E:\test.log.gz','rb'))

#表示的是要解压缩哪个文件了。

open(r'E:\test.log','wb').write(g.read())

#将解压缩出来的数据写到哪个文件中去。

 

应用举例:

抓取有GZIP压缩的网页

try:

    import urllib2, httplib

    request = urllib2.Request(url)

    request.add_header('Accept-encoding', 'gzip')        

    opener = urllib2.build_opener()

    f = opener.open(request)

    if 'gzip' in f.headers.get('Content-Encoding'):

        compresseddata = f.read()                             

        import StringIO

        compressedstream = StringIO.StringIO(compresseddata)  

        import gzip

        gzipper = gzip.GzipFile(fileobj=compressedstream)     

        data = gzipper.read()   

        gzipper.close()

except:  

    data = f.read()

    f.close()

阅读(867) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~