2012-12-21 72 views
0

可能重複:
uncompressing tar.Z file with python?閱讀zlib的文件在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),但似乎沒有任何工作。你有什麼建議嗎?

回答

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是一個類文件,可以用來讀取文件。

+0

打我吧+1(可以使用'解壓縮文件名'而不是gzip和params雖然...) –

+0

@JonClements:改變它使用'zcat',它仍然更短。 –