在 H5PY 中打开文件时出错(未找到文件签名)

2024-02-09

我一直在使用以下代码来打开一些 HDF5 文件,这些文件是在 MATLAB 中使用 H5PY 在 python 中生成的:

import h5py as h5
data='dataset.mat'
f=h5.File(data, 'r')

但是我收到以下错误:

OSError: Unable to open file (File signature not found)

我已检查我尝试打开的文件是否为 7.3 版 MAT 文件且为 HDF5 格式。事实上我之前已经使用H5PY成功打开过相同的文件。我已经确认这些文件存在并且可以访问,所以我不太确定错误来自哪里。任何建议将不胜感激,提前致谢:)


通常是消息File signature not found表示:

1.您的文件已损坏。

……我认为最有可能的是。你说你以前打开过这些文件。也许您忘记关闭文件句柄,这可能会损坏文件。 尝试使用 HDF5 实用程序检查文件h5debug(如果您已在操作系统上安装了 hdf5 库,则可在命令行上使用,请检查dpkg -s libhdf5-dev在 Linux 上)。

2. 文件不是HDF5格式。

这是导致错误消息的已知原因。但既然你说你确定是这种情况,并且你之前已经打开过这些文件,我给出的只是供其他可能在这里遇到问题的人参考:

自 2015 年 12 月(自版本 7.3 起),Matlab 文件在其文件中使用基于 HDF5 的格式MAT 文件级别 5 容器 https://www.loc.gov/preservation/digital/formats/fdd/fdd000440.shtml (more doc https://www.mathworks.com/help/pdf_doc/matlab/matfile_format.pdf)。早期版本的 MAT 文件(v4(级别 1.0)、v6 和 v7 至 7.2)受scipy图书馆:

import scipy.io
f = scipy.io.loadmat('dataset.mat')

否则,您可以尝试其他方法,看看错误是否仍然存在:

PyTables是 h5py 的替代品并被发现here http://www.pytables.org/.

import tables
file = tables.open_file('test.mat')

安装使用

pip install tables

Python MATLAB 引擎如果您安装了 matlab,则可以选择读取 MAT 文件。文档可以在这里找到:适用于 Python 的 MATLAB 引擎 API http://de.mathworks.com/help/matlab/matlab-engine-for-python.html.

import matlab.engine
mat = matlab.engine.start_matlab()
f = mat.load("dataset.mat", nargout=1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 H5PY 中打开文件时出错(未找到文件签名) 的相关文章

随机推荐

  • postgres - 具有递归

    我期望以下内容返回所有元组 将层次结构中的每个父级解析到顶部 但它只返回最低级别 其 ID 在查询中指定 如何返回给定 level id 的整个树 create table level level id int level name tex
  • 编辑 jQuery 数据表信息

    我在用Jquery数据表 https datatables net 展示我的桌子 我有一列记录为 活动 或 非活动 现在我想在显示 显示 72 个条目中的 1 到 10 之后立即显示具有活动和非活动值的列数 My table like li
  • 更多 Passport.js 问题 - 表单提交挂起

    我正在设置我认为可能最简单的身份验证 站点在登录屏幕上加载 用户在表单中输入凭据 提交时我使用 Passport JS 和 Sequelize 来检查凭据 大多数内容都是从各种教程或 Passport 网站本身复制的 无论我做什么 更改或尝
  • Pandas GroupBy - 仅显示具有多个唯一特征值的组

    我有一个数据框df things看起来像这样 我想在训练之前预测分类的质量 A B C CLASS al1 bal1 cal1 Ship al1 bal1 cal1 Ship al1 bal2 cal2 Ship al2 bal2 cal2
  • 处理Guzzle异常并获取HTTP正文

    当服务器返回 4xx 和 5xx 状态代码时 我想处理来自 Guzzle 的错误 我提出这样的请求 client this gt getGuzzleClient request client gt post url headers valu
  • Markdown 中的 HTML 小部件对齐

    我用knitr opts chunk set fig align center 在 rmarkdown 文档的开头设置数字的对齐方式 当我输出 HTML 文件时 静态图形与中心对齐 但 HTML 小部件 例如来自leaflet and gg
  • 允许迭代而不产生任何垃圾

    我在实现 IEnumerable 接口的对象池中有以下代码 public IEnumerable
  • 如何在 U-SQL 中抛出错误或引发异常?

    在 U Sql 脚本中引发错误或异常的机制是什么 我有一个场景 正在处理 CSV 文件 如果在其中发现重复项 那么我需要放弃处理 在 SQL 中 我可以做raiseerror 在 U Sql 中执行此操作的等效方法是什么 创建一个 C 函数
  • 如何运行 SparkR 的 R 脚本?

    我正在从终端运行sparkR 2 0 0 并且可以运行R命令 但是 如何创建 r 脚本并能够在 Spark 会话中运行它 SparkR 使用标准 R 解释器 因此适用相同的规则 如果您想在当前会话中执行外部脚本 请使用source功能 We
  • 以编程方式打开特定的设置页面

    在我的应用程序中 有什么方法可以将用户重定向到特定的设置 页面 吗 我的应用程序用作锁屏应用程序 因此我希望能够将用户直接重定向到 Android 设置的 锁屏 部分 最好通过按钮或类似的东西 ACTION SECURITY SETTING
  • 使用闭包工具创建表

    谁能帮助我使用闭包库创建表格 网格布局 有可用的小部件吗 我搜索过但没有找到 请帮忙 截至 2012 年 5 月 Closure Library 不提供表格 网格布局组件 有一个表格排序器 参见demo http closure libra
  • 如果没有 std::contigious_iterator_tag,如何检测连续迭代器?

    C 17引入了ContigeousIterator的概念http en cppreference com w cpp iterator http en cppreference com w cpp iterator 但似乎并没有计划cont
  • 是否可以在我自己的服务器上托管电报?

    Telegram https telegram org 是一种基于云的聊天服务 他们所有的客户端都是开源的 我想知道是否有办法在我自己的服务器上托管 私人 电报服务 如果没有 是否有任何东西可以提供 telegram 提供的所有或几乎所有功
  • 如何调整 pub 包“flutter_native_splash”中的图像大小?

    我正在使用 flutter native splash 1 3 1 包向应用程序添加启动屏幕 显示的图像尺寸大于启动屏幕上所需的尺寸 减小启动屏幕上图像大小的正确方法是什么 不幸的是 我认为你做不到 因此 选项是调整图像大小以适合您的屏幕
  • Visual Studio 中 F10 和 F11 键有什么区别?

    I m new in C I hit a breakpoint and pressed F10 or F11 应该使用哪个键进行编译 请帮帮我 你能解释一下这个键的作用吗 F10 step over does not descend any
  • 模拟真实的鼠标点击

    我想做的是在 YouTube 上执行鼠标单击 在页面加载时按播放键 如何单击该特定位置 假设它始终位于同一位置 我尝试过但失败了 var e document getElementById myelem e click var e new
  • 在 Electron 中禁用网络

    电子 js https electronjs org 是一个用户界面工具包 允许 Web 应用程序作为任意 GUI 运行 然而 有一些应用程序应该被视为敏感 例如 银行业的 GUI 应该有强有力的保证 确保它不会做任何恶作剧 我想知道电子
  • 接收和旋转字符的函数 - 凯撒密码

    我正在尝试创建一个函数 rotate character char rot 接收一个字符 char 长度为 1 的字符串 和一个整数 rot 该函数应返回一个长度为 1 的新字符串 这是将 char 向右旋转 rot 个位数的结果 因此 输
  • 选择小数点后 4 位以上的数字

    我有一个 SQL 表 其中有一个浮点列 其中填充了如下值 1 4313 3 35 2 55467 6 22456 3 325 我需要选择仅包含小数点后 4 位以上的值的行 在这种情况下 选择必须返回 2 55467 6 22456 有想法吗
  • 在 H5PY 中打开文件时出错(未找到文件签名)

    我一直在使用以下代码来打开一些 HDF5 文件 这些文件是在 MATLAB 中使用 H5PY 在 python 中生成的 import h5py as h5 data dataset mat f h5 File data r 但是我收到以下