如何使用h5py从HDF5数据集中读取字符串

时间:2016-02-23 11:57:13

标签: python python-3.x hdf5 h5py

我有一个HDF5文件h5dump如下(省略不相关的内容)

HDF5 "file.h5" {
GROUP "/" {
  DATASET "history" {
    DATATYPE  H5T_STRING {
      STRSIZE H5T_VARIABLE;
      STRPAD H5T_STR_NULLTERM;
      CSET H5T_CSET_ASCII;
      CTYPE H5T_C_S1;
    }
    DATASPACE  SIMPLE { ( 1 ) / ( H5S_UNLIMITED ) }
    DATA {
    (0): "some string"
    }
  }
}

我尝试使用h5py从python(3.5)读取。我到目前为止的尝试是

import h5py
F = h5py.File('file.h5', "r")
H = list()
for x in F['history']:
    H.append(str(x))

for x in H:
    print(x)

产生

b'some string'

而不是简单

some string

如何提取纯数据字符串?我需要做什么而不是str(x)

P.S。这是我的第一个蟒蛇问题,所以请耐心等待。

1 个答案:

答案 0 :(得分:2)

只需使用

H = [x.decode() for x in F['history']]

此列表理解将返回H作为字符串列表。