Как объединить несколько файлов .h5 (но одной формы) с помощью Python? - PullRequest
0 голосов
/ 24 октября 2018

Как объединить несколько файлов .h5 (но одинаковой формы) с помощью python?

У меня есть 10 000 файлов .h5 для трехмерного облака точек.

Они имеют одинаковую форму.

И я хотел бы объединить (или объединить) 2000 файлов, чтобы у меня было всего 5 больших файлов .h5.(например, функция append () в python)

Я нашел функции copy () из h5py (http://docs.h5py.org/en/latest/high/group.html).

) Однако я не смог применить этот метод к моей проблеме.

Пожалуйста, используйте примеры кодов или помогите решить мою проблему.

Извините за плохое знание английского языка.

1 Ответ

0 голосов
/ 24 октября 2018

Вы можете просто сделать что-то вроде этого (не проверено, но должно работать):

import h5py

def copy(dest, name):
    g = dest.require_group(name)  # create output group with the name of input file
    def callback(name, node):
        if isinstance(node, h5py.Dataset):  # only copy dataset
            g.create(name, data=node[:])

with h5py.File('out.h5', 'w') as h5_out:
    for f_in in files:
        with h5py.File(f_in, 'r') as h5_in:
                h5_in.visititems(copy(h5_out, f_in))

Это создаст «папку» (группу HDF5) для каждого из файлов и рекурсивно скопирует туда все содержимое.

См. Также: связанный вопрос .

...