【发布时间】:2016-07-19 15:25:56
【问题描述】:
我正在尝试删除我在 Python 中使用 h5py 在 HDF5 文件中编写的子组。例如,根据文档,可以使用以下命令删除名为“MyDataset”的子组:
del subgroup["MyDataset"]
我这样做了,并且实际上无法再访问子组。但是,文件不会减小其大小。我的问题是,是否可以使用 h5py 从已删除的子组中恢复空间,而无需将剩余的子组重写为全新的文件?下面我提供一个小例子来说明我的意思:
import numpy as np
import h5py
myfile = h5py.File('file1.hdf5')
data = np.random.rand(int(1e6))
myfile.create_dataset("MyDataSet", data=data)
myfile.close()
然后我打开文件并删除之前的条目:
myfile = h5py.File('file1.hdf5')
del myfile["MyDataSet"]
如果您尝试使用以下方法获取数据:
myfile["MyDataSet"].value
您将意识到无法再访问数据。但是,如果您检查文件的大小,它在调用 del 前后保持不变。
【问题讨论】: