Есть ли в python единственная функция, которая показывает полную структуру файла .hdf5? - PullRequest
1 голос
/ 10 апреля 2020

Открывая файл .hdf5, можно по-разному изучать уровни, ключи и имена файлов. Интересно, есть ли способ или функция, которая отображает все доступные пути для исследования в .hdf5. В конечном итоге показывает все дерево.

Ответы [ 2 ]

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

Вы также можете получить схему / содержимое файла без написания кода Python или установки дополнительных пакетов. Если вы просто хотите увидеть всю схему, взгляните на утилиту h5dump из Группа HDF . Есть варианты для контроля количества деталей, которые сбрасываются. Примечание: опция по умолчанию - сбросить все. Чтобы получить быстрый / маленький дамп, используйте: h5dump -n 1 --contents=1 h5filename.h5.

Другой Python pakcage - PyTables . У него есть утилита ptdump, которая является инструментом командной строки для опроса файла HDF (аналогично h5dump выше).

Наконец, вот несколько советов, если вы хотите рекурсивно обращаться к группам и наборам данных в Python. h5py и tables (PyTables) каждый имеет методы для этого:

В h5py:
Используйте метод object.visititems(callable). Он вызывает вызываемую функцию для каждого объекта в дереве.

В PyTables:
PyTables имеет несколько способов рекурсивного доступа к группам, наборам данных и узлам. Существуют методы, которые возвращают итерируемое (object.walk_nodes) или возвращают список (object.list_nodes). Существует также метод, который возвращает итеративный объект, который не является рекурсивным (object.iter_nodes).

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

Попробуйте использовать пакет nexuformat для просмотра структуры файла hdf5.

Установить с помощью pip install nexusformat

Код

import nexusformat.nexus as nx
f = nx.nxload(‘myhdf5file.hdf5’)
print(f.tree)

Это должно напечатать вся структура файла. Подробнее об этом см. этот поток. Примеры можно найти здесь

...