Python 2.7 Python2.7无法解码deflate编码

Python 2.7 Python2.7无法解码deflate编码,python-2.7,encoding,gzip,urllib,zlib,Python 2.7,Encoding,Gzip,Urllib,Zlib,出于某种原因,urllib正在破坏我从网站下载的文档。url绝对正确。文档以正确的名称下载,但一旦打开,它们就会出现损坏。我发现下载是用deflate编码的,所以我尝试对它进行解码,但当我修改“zlib”部分时,我总是会遇到这两个错误 错误: error-2 while preparing to decompress data: inconsistent stream state 或 以下是问题所在的代码片段: def download_file(url, name): try: f = ur

出于某种原因,urllib正在破坏我从网站下载的文档。url绝对正确。文档以正确的名称下载,但一旦打开,它们就会出现损坏。我发现下载是用deflate编码的,所以我尝试对它进行解码,但当我修改“zlib”部分时,我总是会遇到这两个错误

错误:

error-2 while preparing to decompress data: inconsistent stream state

以下是问题所在的代码片段:

def download_file(url, name):
try:
f = urllib.urlopen(url)
fh = open(name, 'wb')
if f.info().get('content-encoding') == 'deflate':
 fh = zlib.decompress(f.read(),16 +zlib.MAX_WBITS)
#fh.write(f.read())
fh.close()
print "  File Downloaded : " , name

except Exception:
    raise

解压缩时,
gzip
deflate
的处理方式不同。有关deflate代码,请参阅。我在前面的评论中已经说过这一点,但我将在这里重申:使用,它可以透明地为您处理解压缩。您的代码段除了之外,怎么会有一个而没有try?您能给我一个例子,上面的代码使用请求库对deflate进行解码吗?
def download_file(url, name):
try:
f = urllib.urlopen(url)
fh = open(name, 'wb')
if f.info().get('content-encoding') == 'deflate':
 fh = zlib.decompress(f.read(),16 +zlib.MAX_WBITS)
#fh.write(f.read())
fh.close()
print "  File Downloaded : " , name

except Exception:
    raise