Если у меня есть один файл hdf5 f1.h5, и я хочу сделать копию этого файла в другой (например, f2.h5), но я не знаю структуру f1.h5, и я хочу скопировать его автоматически, могу ли я сделать это с некоторыми советами h5py?
f1.h5
f2.h5
h5py
Я не знаю о h5py, но это должно быть возможно:
f1=open('f1.h5','rb') f2=open('f2.h5','wb') f2.write(f1.read())
Вы читаете каждый байт первого файла и записываете его во второй файл. Такие вещи, как структура, не имеют значения
Вы можете использовать метод .copy() для рекурсивного копирования объектов из f1.h5 в f2.h5. Вам не нужно знать схему: используйте ключи для доступа к группам / наборам данных на уровне root. Если источником является объект группы, по умолчанию все объекты в этой группе будут копироваться рекурсивно.
.copy()
import h5py h5r=h5py.File("f1.h5", 'r') with h5py.File("f2.h5", 'w') as h5w: for obj in h5r.keys(): h5r.copy(obj, h5w ) h5r.close()