有没有办法按照创建顺序存储和随后读取hdf文件中的属性?
我在python中有一个有序的元组列表(字符串,值),我想将它作为属性添加到hdf组。我按顺序访问我的列表,并且属性最终按字典顺序(我假设)在hdf文件中排序。
import h5py
a = [('attr1', -1.0), ('attr2', 8), ('attr3', 4000), ('attr4', 1000),\
('attr5', -1.0), ('attr6', 8), ('attr7', 4000), ('attr8', 1000),\
('attr9', -1.0), ('attr10', 8), ('attr11', 4000), ('attr12', 1000)]
with h5py.File('test.h5', 'a') as output_stream:
for k, v in a:
output_stream.attrs[k] = v
这个的h5dump是下面的那个,它似乎在创建时没有任何时间数据。
HDF5 "test.h5" {
GROUP "/" {
ATTRIBUTE "attr1" {
DATATYPE H5T_IEEE_F64LE
DATASPACE SCALAR
DATA {
(0): -1
}
}
ATTRIBUTE "attr10" {
DATATYPE H5T_STD_I32LE
DATASPACE SCALAR
DATA {
(0): 8
}
}
ATTRIBUTE "attr11" {
DATATYPE H5T_STD_I32LE
DATASPACE SCALAR
DATA {
(0): 4000
}
}
ATTRIBUTE "attr12" {
DATATYPE H5T_STD_I32LE
DATASPACE SCALAR
DATA {
(0): 1000
}
}
ATTRIBUTE "attr2" {
DATATYPE H5T_STD_I32LE
DATASPACE SCALAR
DATA {
(0): 8
}
}
... (ATTRIBUTE 3 to 8)
ATTRIBUTE "attr9" {
DATATYPE H5T_IEEE_F64LE
DATASPACE SCALAR
DATA {
(0): -1
}
}
}
}
我在一些hdf文档中发现,HDF5应该支持使用H5Pset_attr_creation_order按创建顺序迭代和查找属性,但我不知道如何用h5py执行此操作。
https://support.hdfgroup.org/HDF5/doc/ADGuide/WhatsNew180.html