2012-08-01 18 views
11

Fragen, ob es eine einfache Möglichkeit gibt zu überprüfen, ob ein Knoten in einer HDF5-Datei mit h5py existiert.Prüfen, ob Knoten in h5py vorhanden ist

Ich konnte nichts in den Dokumenten finden, also verwende ich gerade Ausnahmen, was hässlich ist.

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

Kontext hinzufügen: Ich bin dies, wenn ein Knoten, bevor Sie einen neuen Knoten mit dem gleichen Namen erstellen existiert, um zu bestimmen verwenden.

Antwort

0

Nach Überprüfung der Dokumentation unter group docs. Ich nehme an, Sie die Tasten Methode des Gruppenobjekts verwenden können vor der Verwendung zu überprüfen:

# 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, das wird die ganze Reihe von Tasten in eine Liste tatsächlich laden und dann tut lineare Suche über diese Liste, während mit '__contains__' (dh' "/ einige/Pfad" in h5file) wird es viel direkter überprüfen. Es funktioniert auch nicht für das angegebene Beispiel, nur wenn es sich um ein Mitglied auf oberster Ebene handelt. – Dougal

+0

Ich dachte darüber nach, aber es funktioniert nicht für eingebettete Mitglieder. Außerdem war ich mir der Auswirkungen auf die Effizienz nicht bewusst ... danke! –

Verwandte Themen