我正在尝试读取压缩的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),但似乎没有任何效果。你有什么建议吗?
答案 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
类似于文件,可用于读取文件。