Saltar al contenido

Obtener toda keys y su jerarquía en el archivo h5 usando la biblioteca python h5py

Esta es la solución más completa que te podemos dar, pero primero mírala pausadamente y analiza si es compatible a tu trabajo.

Solución:

Algunos de los keys devuelto por keys() en un grupo pueden ser conjuntos de datos, algunos pueden ser subgrupos. Para encontrar todos keys necesita recurrir a los grupos. Aquí hay un script simple para hacer eso:

import h5py

def allkeys(obj):
    "Recursively find all keys in an h5py.Group."
    keys = (obj.name,)
    if isinstance(obj, h5py.Group):
        for key, value in obj.items():
            if isinstance(value, h5py.Group):
                keys = keys + allkeys(value)
            else:
                keys = keys + (value.name,)
    return keys

h5 = h5py.File('/dev/null', 'w')
h5.create_group('g1')
h5.create_group('g2')
h5.create_dataset('d1', (10,), 'i')
h5.create_dataset('d2', (10, 10,), 'f')
h5['g1'].create_group('g1')
h5['g1'].create_dataset('d1', (10,), 'i')
h5['g1'].create_dataset('d2', (10,), 'f')
h5['g1/g1'].attrs['a'] = 'b'
print(allkeys(h5))

Da:

('/', '/d1', '/d2', '/g1', '/g1/d1', '/g1/d2', '/g1/g1', '/g2')

Recuerda que tienes la capacidad de añadir una estimación acertada si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *