在Python中读入zlib文件导致“不正确的标题检查”

时间:2012-12-21 11:10:07

标签: python compression zlib

  

可能重复:
  uncompressing tar.Z file with python?

我正在尝试读取压缩的zlib,以便直接访问包含的HDF文件中的数据(使用pyhdf)。但是,我总是收到一条错误消息。这是file

import zlib
file = open('3B42.20070101.00.7A.HDF.Z','rb')
data = zlib.decompress(file.read())

>> error: Error -3 while decompressing data: incorrect header check

我检查了其他几种方法(例如gzip.open/gzip.zlib),但似乎没有任何效果。你有什么建议吗?

1 个答案:

答案 0 :(得分:3)

这不是zlib或gzip文件,它是由旧的Unix工具compress压缩的(正如您从.Z扩展名中所知)。命令行工具gzip / gunzip / zcat可以读取这些工具,但不能读取Python gzip模块。你可以使用管道:

from subprocess import Popen, PIPE

filename = "3B42.20070101.03.7A.HDF.Z"
f = Popen(["zcat", filename], stdout=PIPE).stdout

现在,f类似于文件,可用于读取文件。