有什么方法可以从hdf5文件中删除数据集,最好使用h5py?或者,是否有可能在保留其他数据集完整的同时覆盖一个数据集?

据我了解,h5py可以5种模式读取/写入hdf5文件

f = h5py.File("filename.hdf5",'mode')

其中模式可以是用于读取的r,用于读写的r+,用于读写的a,但创建一个新文件(如果不存在),用于写入/覆盖的w和与w-相同的w,但如果文件已存在则失败。我已经尝试了所有方法,但似乎都没有效果。

任何建议,不胜感激。

最佳答案

是的,可以这样做。

with h5py.File(input,  "a") as f:
    del f[datasetname]

您将需要以可写模式打开文件,例如,append(如上所述)或write。

正如@ seppo-enarvi在评论中指出的那样,以前推荐的f.__delitem__(datasetname)函数的目的是实现del运算符,以便人们可以使用del f[datasetname]删除数据集。

关于python - 使用H5PY删除HDF5数据集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31861724/

10-12 23:20