我想使用python hdf5.py在hdf5文件中存储字符串,这完全正常工作,只要Unicode字符串中没有变音符号或其他特殊字符:
# -*- coding: utf-8 -*-
import h5py
dtype = h5py.special_dtype(vlen=unicode)
wdata = u"Ärger"
with h5py.File("test.h5", 'w') as f:
dset = f.create_dataset("DS1", (1,), dtype=dtype)
dset[...] = wdata
with h5py.File("test.h5") as f:
rdata = f["DS1"].value
print rdata
而不是Ärger,答案是''\ xc4rger'
是否可以将变音符号存储在hdf5文件中?怎么样?
答案 0 :(得分:0)
您需要为适用于hdf5的数据设置一个编码(并且可能会跟踪您正在使用的编码,以便以后可以正确恢复数据)。从本质上讲,编码会将ascii-range之外的字符序列化为类似转义序列的字符 - 以后可以将其转换回终端或其他地方可读的文本。
仅仅因为你正在使用你的"" Python中的字符串并不意味着字符串以特定的方式编码,适用于这种情况。
答案 1 :(得分:0)
感谢您的帮助,以下代码可行,问题显然是数据集是一个数组,并且没有选择正确的元素:
# -*- coding: utf-8 -*-
import h5py
dtype = h5py.special_dtype(vlen=unicode)
wdata = u"umlauts, in HDF5, for example öüßÄ might cause trouble"
print wdata
with h5py.File("test.h5", 'w') as f:
dset = f.create_dataset("DS1", (1,), dtype=dtype)
dset[...] = wdata
with h5py.File("test.h5") as f:
rdata = f["DS1"].value[-1]
print rdata
问候