返回介绍

7.3 定长字符串

发布于 2024-01-25 22:02:55 字数 752 浏览 0 评论 0 收藏 0

HDF5对字符串的处理有些麻烦,你已经在第6章见识过了。

我们在下一节会看到,大多数真实世界的字符串都和固定长度的存储格格不入。但是定长字符串在FORTRAN的年代就被广泛使用,一直沿用至NumPy的世界。

在NumPy中,这些定长字符串以“S”dtype创建。这是一种灵活的dtype,允许你在创建类型时设置字符串的长度。HDF5本地支持定长字符串:

和NumPy定长字符串一样,HDF5也会将字符串超出长度的部分截断:

技术上来说,这些都是定长字节字符串,这意味着它们的每个字符都占用一个字节。HDF5假定它们只保存ASCII文本。NumPy还支持定长Unicode字符串,它们的每个字符会占用多个字节,可以代表ASCII范围以外的内容。这些类型需要以“U”dtype创建,比如dtype(“U10”)。

不幸的是,HDF5不支持“宽字符”Unicode字符串,所以你无法将“U”字符串直接保存入文件。别担心,你不会因此就跟Unicode无缘的。不过先让我们去讨论HDF5最棒的特性之一:变长字符串。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文