将 hdf5 转换为在文件夹中组织的原始文件
Convert hdf5 to raw organised in folders
我使用脚本使图像与图集相匹配。此脚本输入 .raw
图像,组织在如下文件夹中:
imageFolder
-- folder1
---- image1.raw
---- image2.raw
-- folder2
---- image1.raw
---- image2.raw
我在 hdf5
中有一张图片,我想将它转换成多个文件,如前所述。这个组织看起来像 hdf5
,不是吗?
我想知道是否可以在 Python 中执行此操作。如果是,我应该使用哪个包?
我查看了 h5py
,但没有找到导出为原始文件并保持层次结构的函数。
Feiten,你可以使用.visititems()
递归调用一个函数(def)导出数据。您可以查询对象类型和名称。组名将是您的文件夹名称,数据集名称将是您的文件名。附件是一个非常简单的例子,展示了如何使用 .visititems()
。如果您不熟悉 h5py and/or HDF5 结构,它有一些输出更多信息的打印语句(已注释掉)。这应该可以帮助您入门。
import h5py
def print_grp_name(grp_name, object):
# print ('object = ' , object)
# print ('Group =', object.name)
try:
n_subgroups = len(object.keys())
#print ('Object is a Group')
except:
n_subgroups = 0
#print ('Object is a Dataset')
dataset_list.append (object.name)
# print ('# of subgroups = ', n_subgroups )
if __name__ == '__main__' :
with h5py.File(your-filename-here,'r') as h5f:
print ('visting group = ', h5f)
dataset_list = []
h5f.visititems(print_grp_name)
print (dataset_list)
我使用脚本使图像与图集相匹配。此脚本输入 .raw
图像,组织在如下文件夹中:
imageFolder
-- folder1
---- image1.raw
---- image2.raw
-- folder2
---- image1.raw
---- image2.raw
我在 hdf5
中有一张图片,我想将它转换成多个文件,如前所述。这个组织看起来像 hdf5
,不是吗?
我想知道是否可以在 Python 中执行此操作。如果是,我应该使用哪个包?
我查看了 h5py
,但没有找到导出为原始文件并保持层次结构的函数。
Feiten,你可以使用.visititems()
递归调用一个函数(def)导出数据。您可以查询对象类型和名称。组名将是您的文件夹名称,数据集名称将是您的文件名。附件是一个非常简单的例子,展示了如何使用 .visititems()
。如果您不熟悉 h5py and/or HDF5 结构,它有一些输出更多信息的打印语句(已注释掉)。这应该可以帮助您入门。
import h5py
def print_grp_name(grp_name, object):
# print ('object = ' , object)
# print ('Group =', object.name)
try:
n_subgroups = len(object.keys())
#print ('Object is a Group')
except:
n_subgroups = 0
#print ('Object is a Dataset')
dataset_list.append (object.name)
# print ('# of subgroups = ', n_subgroups )
if __name__ == '__main__' :
with h5py.File(your-filename-here,'r') as h5f:
print ('visting group = ', h5f)
dataset_list = []
h5f.visititems(print_grp_name)
print (dataset_list)