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

标签 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),我需要做什么?

附言这是我的第一个 python 问题,所以请多多包涵。

最佳答案

就用

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

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

关于python - 如何使用 h5py 从 HDF5 数据集中读取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35576999/

相关文章:

python - Scipysolve_banded矩阵使用的求解方法

python - 使用 BeautifulSoup 删除 <p> 标签内的空格

python - 将自定义比较与 python 3 中的键选择相结合

python - 如何将 beautifulsoup 文本转换为列表或可迭代对象

python - 优化 pytables/HDF5 的 chunkshape 参数以读取整列

python - 如何在 Python 中将斐波那契数列打印到第 n 个数?

python - 解析具有间隔的整数集字符串以列出

python - 根据嵌套列表python中的类别计算用户

c++ - MPI-并行 HDF5 : H5Pset_fapl_mpio equivalent in C++

Windows 操作系统无法打开适用于 linux 的文件名