hsn*_*nee 18 python hdf5 dataset h5py
有没有办法从hdf5文件中删除数据集,最好是使用h5py?或者,是否可以覆盖数据集,同时保持其他数据集完好无损?
据我了解,h5py可以在5种模式下读/写hdf5文件
f = h5py.File("filename.hdf5",'mode')
Run Code Online (Sandbox Code Playgroud)
其中mode可以r用于读取,r+用于读写,a用于读写但是如果不存在则创建新文件,w用于写/覆盖, 如果文件已经存在,则该文件w-相同w但失败.我尝试了所有但似乎没有工作.
任何建议都非常感谢.
Ene*_*nes 32
是的,这可以做到.
with h5py.File(input, "a") as f:
del f[datasetname]
Run Code Online (Sandbox Code Playgroud)
您需要以可写模式打开文件,例如追加(如上所述)或写入.
正如@ seppo-enarvi在评论中所指出的,之前推荐的 f.__delitem__(datasetname) 函数 的目的是实现del 运算符,以便可以使用删除数据集 del f[datasetname]
小智 5
我尝试了这个,我实际上可以减小文件大小的唯一方法是将所有内容复制到一个新文件中,而只留下我不感兴趣的数据集:
fs = h5py.File('WFA.h5', 'r')
fd = h5py.File('WFA_red.h5', 'w')
for a in fs.attrs:
fd.attrs[a] = fs.attrs[a]
for d in fs:
if not 'SFS_TRANSITION' in d: fs.copy(d, fd)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18850 次 |
| 最近记录: |