如果不存在则创建 HDF5 组 /Table

Create HDF5 Group /Table if it does not exist

我正在使用 PyTables python 包构建 HDF5 文件。该文件将每天使用最新的报价数据进行更新。我想创建两个组 - QuotesTrades 以及不同期货到期日的表格。我想检查组 Quotes 是否存在,如果不存在则创建它。在 PyTables 中执行此操作的最佳方法是什么?

这是我现在所在位置的代码片段:

hdf_repos_filters = tables.Filters(complevel=1, complib='zlib')
for instrument in instruments:
    if options.verbose:
    hdf_file = os.path.join(dest_path, "{}.h5".format(instrument))
    store = tables.open_file(hdf_file, mode='a', filters=hdf_repos_filters)
    # This is where I want to check whether the group "Quotes" and "Trades" exist and if not create it

我想我已经弄明白了。

我在 File class 中使用 File.__contains__(path) 方法 PyTables

根据文档:

File.__contains__(path)

Is there a node with that path?

Returns True if the file has a node with the given path (a string), False otherwise.

PyTables File class

Kapil 在您想要使用 __contains__ 方法方面走在正确的轨道上,尽管因为它是双下划线方法,所以不打算直接调用它,而是通过备用接口调用。在这种情况下,该接口是 in。所以要检查一个文件 hdf_file 包含一个组 "Quotes" 你可以 运行:

with tables.open_file(hdf_file) as store:
    if "/Quotes" in store:
       print(f"Quotes already exists in the file {hdf_file}")