Возможно ли, не зная структуры, сделать файл hdf5, который будет такой же копией другого в python 3.6? - PullRequest
0 голосов
/ 30 апреля 2020

Если у меня есть один файл hdf5 f1.h5, и я хочу сделать копию этого файла в другой (например, f2.h5), но я не знаю структуру f1.h5, и я хочу скопировать его автоматически, могу ли я сделать это с некоторыми советами h5py?

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Я не знаю о h5py, но это должно быть возможно:

f1=open('f1.h5','rb')
f2=open('f2.h5','wb')

f2.write(f1.read())

Вы читаете каждый байт первого файла и записываете его во второй файл. Такие вещи, как структура, не имеют значения

0 голосов
/ 30 апреля 2020

Вы можете использовать метод .copy() для рекурсивного копирования объектов из f1.h5 в f2.h5. Вам не нужно знать схему: используйте ключи для доступа к группам / наборам данных на уровне root. Если источником является объект группы, по умолчанию все объекты в этой группе будут копироваться рекурсивно.

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()
...