使用 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:无法创建数据集(数据集:无法初始化对象)”,我不明白。
我是新手,因此我们将不胜感激!
最佳答案
f.create_dataset
应该是 outfile.create_dataset
,因为 f
是以读取模式打开的 File
,而outfile
是一个以写入模式打开的File
。
顺便说一句,如果您在 with-statement 中使用 h5py.File
作为上下文管理器,
当 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)
关于python - 在python中将数组写入h5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26505448/