0

重複の可能性:
Pythonでtar.Zファイルを解凍しますか?

含まれているHDFファイルのデータに直接アクセスするために(pyhdfを使用して)圧縮されたzlibを読み取ろうとしています。ただし、常にエラーメッセージが表示されます。これがファイルです

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など)を確認しましたが、何も機能しないようです。何か提案はありますか?

4

1 に答える 1

3

これはzlibまたはgzipファイルではなく、古いUnixツールによって圧縮されていますcompress(拡張子からわかるように.Z)。コマンドラインツール//gzipはそれらを読み取ることができますが、Pythonモジュールは読み取ることができませgunzipん。パイプを使用できます。zcatgzip

from subprocess import Popen, PIPE

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

さて、fはファイルの読み取りに使用できるファイルのようなものです。

于 2012-12-21T11:17:42.020 に答える