如何使用 h5py 从 HDF5 数据集中读取字符串
How to read strings from HDF5 dataset using 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。这是我的第一个python问题,请多多包涵。
只需使用
H = [x.decode() for x in F['history']]
此列表理解将 return H
作为字符串列表。
我有一个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。这是我的第一个python问题,请多多包涵。
只需使用
H = [x.decode() for x in F['history']]
此列表理解将 return H
作为字符串列表。