2012-08-01 28 views
11

Chiedere se esiste un modo semplice per verificare se esiste un nodo all'interno di un file HDF5 utilizzando h5py.Verificare se il nodo esiste in h5py

Non ho trovato nulla nei documenti, quindi ora sto usando le eccezioni, che è brutto.

# check if node exists 
# first assume it exists 
e = True 
try: 
    h5File["/some/path"] 
except KeyError: 
    e = False # now we know it doesn't 

Per aggiungere contesto: Sto usando questo per determinare se esiste un nodo prima di provare a creare un nuovo nodo con lo stesso nome.

risposta

0

Dopo aver controllato la documentazione allo group docs. Presumo è possibile utilizzare il metodo chiavi dell'oggetto gruppo per controllare prima dell'uso:

# check if node exists 
# first assume it doesn't exist 
e = False 
node = "/some/path" 
if node in h5file.keys(): 
    h5File[node] 
    e = True 
+1

In Python 2, questo sarà effettivamente caricare l'intero set di chiavi in ​​una lista e poi fare ricerca lineare su questa lista, mentre l'uso '__contains__' (cioè' "/ some/path" in h5file') lo controllerà molto più direttamente. Inoltre, non funzionerà per l'esempio dato, solo se si tratta di un membro di livello superiore. – Dougal

+0

L'ho considerato, ma non funziona per i membri incorporati. Inoltre, non ero a conoscenza delle implicazioni di efficienza ... grazie! –

Problemi correlati