确定文件中的表时出现 NoSuchNodeError

NoSuchNodeError when determine tables in file

我用的是PyTables,我想检查一个table是否已经创建,如果没有,就创建它。

我使用以下代码:

if handle.__contains__(handle.root.grades)==False:
    handle.create_table('/', 'grades', grades)

而当不存在名为"grades"的table时,程序报错:"NoSuchNodeError: group / does not have a child named grades"

一旦有一个名为"grades"的table,下面的

handle.__contains__(handle.root.grades)

returns 正确。

如何判断是否存在某个table?

我用下面的表达式来处理这个问题。

import tables as tb
try:
   handle.__contains__(handle.root.grades)
   print('contains grades')
except tb.NoSuchNodeError:
   print('there is no grades, will create it')
   handle.create_table('/', 'grades', grades)

在 Pytables 中,file.contains 的表达式是

def __contains__(self, path):

    try:
        self.get_node(path)
    except NoSuchNodeError:
        return False
    else:
        return True

所以,pytables有没有问题?或者我没有正确导入表格?