2024-04-24 21:22:45 发布
网友
是否有任何方法可以使用python库h5py递归获取h5文件中的所有密钥?我试着使用下面的代码
import h5py h5_data = h5py.File(h5_file_location, 'r') print(h5_data.keys())
但它只打印h5文件的顶级密钥
组上的keys()返回的一些键可能是数据集,也可能是子组。为了找到所有键,您需要递归组。下面是一个简单的脚本:
keys()
import h5py def allkeys(obj): "Recursively find all keys in an h5py.Group." keys = (obj.name,) if isinstance(obj, h5py.Group): for key, value in obj.items(): if isinstance(value, h5py.Group): keys = keys + allkeys(value) else: keys = keys + (value.name,) return keys h5 = h5py.File('/dev/null', 'w') h5.create_group('g1') h5.create_group('g2') h5.create_dataset('d1', (10,), 'i') h5.create_dataset('d2', (10, 10,), 'f') h5['g1'].create_group('g1') h5['g1'].create_dataset('d1', (10,), 'i') h5['g1'].create_dataset('d2', (10,), 'f') h5['g1/g1'].attrs['a'] = 'b' print(allkeys(h5))
给出:
('/', '/d1', '/d2', '/g1', '/g1/d1', '/g1/d2', '/g1/g1', '/g2')
您可能希望循环键以返回它们的值。下面是一个简单的函数
import h5py h5_file_location = '../../..' h5_data = h5py.File(h5_file_location, 'r') def keys(f): return [key for key in f.keys()] print(keys(h5_data))
组上的
keys()
返回的一些键可能是数据集,也可能是子组。为了找到所有键,您需要递归组。下面是一个简单的脚本:给出:
您可能希望循环键以返回它们的值。下面是一个简单的函数
相关问题 更多 >
编程相关推荐