2012-08-01 74 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后。我想你可以使用组对象的按键方法使用前检查:

# 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

在Python 2,这实际上将整个组键的加载到一个列表,然后做了这个名单线性搜索,而使用'__contains__'(即h5file中的''/ some/path')将更直接地检查它。另外,只有当它是顶级成员时,它才会适用于给出的示例。 – Dougal 2012-08-01 07:47:23

+0

我考虑过这个问题,但它不适用于嵌入式成员。另外,我不知道效率的影响......谢谢! – 2012-08-01 08:01:34

相关问题