Удаление набора данных hdf5 с использованием h5py
Есть ли способ удалить набор данных из файла hdf5, предпочтительно используя h5py? Или, альтернативно, можно ли перезаписать набор данных, сохраняя при этом другие наборы данных?
Насколько я понимаю, h5py может читать/записывать файлы hdf5 в 5 режимах
f = h5py.File("filename.hdf5",'mode')
где режим может быть r
для чтения, r+
для чтения-записи, a
для чтения-записи, но создает новый файл, если он не существует, w
для write/overwrite и w-
, который аналогичен w
, но не работает, если файл уже существует. Я пробовал все, но никто, похоже, не работает.
Любые предложения очень ценятся.
Ответы
Ответ 1
Да, это можно сделать.
with h5py.File(input, "a") as f:
del f[datasetname]
Вам нужно будет открыть файл в режиме записи, например, добавить (как указано выше) или написать.
Как отмечено в комментариях @seppo-enarvi, целью ранее рекомендованной функции f.__delitem__(datasetname)
является реализация оператора del
, так что можно удалить набор данных с помощью del f[datasetname]
Ответ 2
Я не понимаю, что ваш вопрос должен делать с режимами открытия файла. Для чтения/записи r + - путь.
Насколько мне известно, удаление нелегко/возможно, в особенности независимо от того, что вы делаете, размер файла не будет сокращаться.
Но перезапись содержимого не проблема
f['mydataset'][:] = 0