2013-04-09 54 views
5

我目前正在研究有關HDF5數據集壓縮的項目,並且最近開始使用h5py。我遵循基本教程,能夠在創建文件時打開,創建和壓縮文件。但是,在壓縮現有文件時(這是我工作的目標),我一直不成功。使用h5py壓縮現有文件

我試過使用'r +'打開文件,然後壓縮分塊的數據集,但文件大小保持不變。

任何關於使用什麼命令的建議,或者我是否以錯誤的方式處理事情?

回答

3

壓縮在h5py中很容易使用。查看Wiki HowToCompression指南。 基本上,它會是這樣的:

ds = myfile.create_dataset('ds', shape, dtype, compression='lzf') 

也有一些問題,你如何挑塊大小,以優化文件大小/訪問,請參閱壓縮引導我掛。

我不記得默認情況下哪個壓縮(如果有的話)。

+1

是的我已經嘗試過,但它似乎只適用於我創建一個新的文件,例如。我可以創建一個塊大小(100,100)的新文件,該文件啓用了gzip/szip/lzf壓縮。當我加載一個現有的文件時,壓縮似乎實際起作用的唯一方法是如果原始文件的內容被覆蓋並且創建一個新文件(與原文件的名稱相同)。 當我加載一個文件,創建一個分塊的數據集,啓用壓縮,然後關閉文件,似乎沒有任何影響或改變。我覺得我錯過了一個步驟,不知道它是什麼。 – kromegaman 2013-04-10 07:48:20

+0

@kromegaman壓縮和塊大小是文件如何寫入磁盤的指導原則。我不認爲這是你可以改變現有文件的東西,因爲它已經寫好了。我認爲改變壓縮/塊的唯一方法是用這些設置編寫一個新文件。 – Bitwise 2013-04-10 12:36:11

+0

是的,我用得越多,看起來就越是這樣。我想我必須創建一個新文件和數據集,將現有文件中的數據複製到新文件中,然後在創建新文件時對其進行壓縮。儘管如此,非常感謝您的幫助! – kromegaman 2013-04-10 17:38:20

相關問題