使用 pytables 获取 hdf5 组的名称
Get name of an hdf5 group using pytables
import tables
f = tables.open_file('my_file.hdf5', mode='w')
f.create_group(f.root, name='videos')
我有另一个脚本可以将数据添加到 'videos' 组。该脚本检查 'videos' 组是否已经存在;如果 'videos' 尚不存在,脚本将创建一个 'videos' 组。
如何检查群组是否已经存在?我尝试使用 f.walk_groups() 和 f.root._v_groups,但这似乎不是最佳解决方案。以及如何获得包含 f.root 中所有组的名称(作为字符串)的列表?
您需要做的就是检查根组中是否存在 group/dataset 路径名。这将 return True/False: '/videos' in f.root
所以你可以像这样创建一个 if
块:
if '/videos' in f.root:
do something
这是一个创建组 + 2 个数组数据集的短代码段,然后打印组和 2 个数据集的逻辑测试。注意arr3不存在。
import tables as tb
import numpy as np
with tb.File('SO_65327481.hdf5', mode='w') as h5f:
h5f.create_group('/', name='videos')
arr = np.random.random((10,10))
h5f.create_array('/videos',name='arr1', obj=arr)
arr = np.random.random((10,10))
h5f.create_array('/videos','arr2',obj=arr)
print ( 'videos exists:', '/videos' in h5f.root)
print ( 'arr2 exists:', '/videos/arr2' in h5f.root)
print ( 'arr3 exists:', '/videos/arr3' in h5f.root)
输出将是:
videos exists: True
arr2 exists: True
arr3 exists: False
import tables
f = tables.open_file('my_file.hdf5', mode='w')
f.create_group(f.root, name='videos')
我有另一个脚本可以将数据添加到 'videos' 组。该脚本检查 'videos' 组是否已经存在;如果 'videos' 尚不存在,脚本将创建一个 'videos' 组。
如何检查群组是否已经存在?我尝试使用 f.walk_groups() 和 f.root._v_groups,但这似乎不是最佳解决方案。以及如何获得包含 f.root 中所有组的名称(作为字符串)的列表?
您需要做的就是检查根组中是否存在 group/dataset 路径名。这将 return True/False: '/videos' in f.root
所以你可以像这样创建一个 if
块:
if '/videos' in f.root:
do something
这是一个创建组 + 2 个数组数据集的短代码段,然后打印组和 2 个数据集的逻辑测试。注意arr3不存在。
import tables as tb
import numpy as np
with tb.File('SO_65327481.hdf5', mode='w') as h5f:
h5f.create_group('/', name='videos')
arr = np.random.random((10,10))
h5f.create_array('/videos',name='arr1', obj=arr)
arr = np.random.random((10,10))
h5f.create_array('/videos','arr2',obj=arr)
print ( 'videos exists:', '/videos' in h5f.root)
print ( 'arr2 exists:', '/videos/arr2' in h5f.root)
print ( 'arr3 exists:', '/videos/arr3' in h5f.root)
输出将是:
videos exists: True
arr2 exists: True
arr3 exists: False