首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python的hdf5文件中的Umlauts

使用python的hdf5文件中的Umlauts
EN

Stack Overflow用户
提问于 2015-07-29 13:54:36
回答 2查看 208关注 0票数 0

我希望使用pythonhdf5.py将字符串存储在hdf5文件中,只要在Unicode字符串中没有umlauts或其他特殊字符,它就能很好地工作:

代码语言:javascript
复制
# -*- 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,而是u'\xc4rger‘

是否可以在hdf5文件中存储umlauts?多么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-29 14:06:32

您需要为您的数据设置一个用于hdf5的编码(并可能跟踪您正在使用的编码,以便以后能够正确地恢复数据)。从本质上说,编码会将超出ascii范围的字符序列化成类似转义序列的内容,这些序列稍后可以转换为在终端或其他地方可读的文本。

在Python中使用u"“字符串并不意味着字符串是以一种特殊的方式编码的,而这种方式适用于这种情况。

关于使用unicode的hdf5文档

票数 0
EN

Stack Overflow用户

发布于 2015-07-31 14:26:42

谢谢您的帮助,下面的代码可以工作,问题显然是数据集是一个Array,并且没有选择正确的元素:

代码语言:javascript
复制
# -*- 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

问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31702543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档