如果不存在则创建 HDF5 组 /Table
Create HDF5 Group /Table if it does not exist
我正在使用 PyTables python 包构建 HDF5 文件。该文件将每天使用最新的报价数据进行更新。我想创建两个组 - Quotes
和 Trades
以及不同期货到期日的表格。我想检查组 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.
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}")
我正在使用 PyTables python 包构建 HDF5 文件。该文件将每天使用最新的报价数据进行更新。我想创建两个组 - Quotes
和 Trades
以及不同期货到期日的表格。我想检查组 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.
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}")