按创建顺序读取hdf属性

时间:2017-07-26 20:44:44

标签: python h5py hdf

有没有办法按照创建顺序存储和随后读取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

0 个答案:

没有答案