我有一个 hdf5 文件,我想通过删除其中一个数据集的属性来修改并保存文件而不进行进一步更改。我可以在 hdfview 中做到这一点,但我需要一些可编写脚本的东西,因为它需要应用于大量文件。
我尝试使用 h5py 在 python 中编写脚本:
import h5py
inF = h5py.File("Filename.h5", 'r')
dSet = inF['/data/myDataset']
del dSet.attrs['myAttrName']
但我收到以下错误:
回溯(最后一次调用):文件“”,第 1 行,文件“/usr/lib/python2.7/dist-packages/h5py/_hl/attrs.py”,第 75 行,delitem h5a.delete(self ._id, self._e(name)) 文件“h5a.pyx”,第 135 行,在 h5py.h5a.delete (h5py/h5a.c:2682) KeyError:“无法删除属性(属性:无法删除消息) )"
print dSet.attrs['myAttrName']
产生正确的值,证明我可以访问该属性。
还有其他方法可以做到这一点吗?也许使用 h5repack?