2014-10-22 119 views
1

使用h5py模塊我試圖簡單地從一個h5文件中讀取數據,對數據進行一些基本計算並將其寫回到新的h5文件中。一切都很好,除非試圖寫入數據集。在python中將數組寫入h5

到目前爲止我有:

f = h5py.File(inData,'r') 
dset = f['/DATA/DATA/'] 
HH = dset[...,0] 

HHdB = (10*numpy.log10(HH*HH)) - 83 

outfile = h5py.File(outData, 'w') 
f.create_dataset('/DATA/DATA/', data=(HHdB)) 

這將返回我的錯誤:「ValueError異常:無法創建數據集(數據集:無法初始化對象)」,我不明白。

我是新手,所以任何幫助將不勝感激!

回答

1

f.create_datasetoutfile.create_dataset,因爲f是在讀模式下打開File,而outfileFile寫模式打開。

順便說一句,如果你在一個with-statement使用h5py.File S作爲上下文管理, 該文件將被自動關閉你(和寫入到磁盤)時Python會離開與語句。

import numpy 
import h5py 

with h5py.File(inData,'r') as f: 
    dset = f['/DATA/DATA/'] 

HH = dset[...,0] 
HHdB = (10*numpy.log10(HH*HH)) - 83 

with h5py.File(outData, 'w') as outfile: 
    outfile.create_dataset('/DATA/DATA/', data=HHdB) 
+0

那真是令人尷尬。這是我從其他地方複製的一些代碼,我忘了更改它。感謝您的幫助(並且不要嘲笑我)! – 2014-10-22 10:48:32

+0

會提到with-statement,儘管在一些較老的機器上(在工作中),這可能還不行(在python 2.5中引入了 - 語句) – usethedeathstar 2014-10-22 10:49:18