2012-08-01 3 views
11

h5py를 사용하여 HDF5 파일 내에 노드가 존재하는지 확인하는 간단한 방법이 있는지 궁금합니다.노드가 h5py에 있는지 확인하십시오.

문서에서 아무 것도 찾을 수 없으므로 지금은 추악한 예외를 사용하고 있습니다.

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

컨텍스트를 추가하려면 : 나는 노드가 같은 이름의 새 노드를 생성하기 전에 존재하는지 확인하려면이 사용하고 있습니다.

답변

0

group docs에서 설명서를 확인한 후. 그룹 개체의 keys 메서드를 사용하여 사용 전에 확인할 수 있다고 가정합니다.

# 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

파이썬 2에서는 실제로이 키 집합 전체를 목록에로드 한 다음이 목록에 대해 선형 검색을 수행합니다. '__contains__' (즉,''/ some/path 'in h5file')는 훨씬 더 직접적으로 검사 할 것입니다. 또한 최상위 멤버 인 경우에만 주어진 예제에서는 작동하지 않습니다. – Dougal

+0

이것을 고려했지만 임베디드 멤버에게는 적합하지 않습니다. 또한 효율성에 대한 영향을 인식하지 못했습니다 ... 감사합니다! –