使用h5py模块我试图简单地读取一个h5文件中的数据,对数据进行一些基本计算并将其写回新的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:无法创建数据集(数据集:无法初始化对象)”,这是我不明白的。
我是新手,所以任何帮助都会非常感激!
答案 0 :(得分:1)
f.create_dataset
应为outfile.create_dataset
,因为f
是在阅读模式下打开的File
,而outfile
是File
在写入时打开模式。
顺便说一句,如果您使用h5py.File
作为with-statement中的上下文管理器,
当Python离开with语句时,文件将自动关闭(并写入磁盘)。
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)