python-cn上一个朋友提出的问题,自己以前也没想过,恰巧django中有一个middleware是做gzip处理的,看了一下它的代码,了解到可以通过StringIO的方式,将字符串以文件的形式来进行处理。
StringIO应该是一个非常有用的模块,因为很多函数都是只支持文件的,使用它后就没有问题了。



import urllib2
import cStringIO
import gzip

f=urllib2.urlopen('http://www.gzip.com/aaaxxx') #gzip url
zbuf=cStringIO.StringIO(f.read())
print gzip.GzipFile(fileobj=zbuf,mode='rb').read()




1条评论

  1. gzip 的magic bytes

    magic = self.fileobj.read(2)

    if magic != ‘\037\213′:

    raise IOError, ‘Not a gzipped file’

    可以这个来判断获取的内容信息是否是经过gzip处理过的。

发表评论

评论也有版权!