gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 20:42:07 35 4
gpt4 key购买 nike

我一直在使用以下代码打开一些 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 成功打开过相同的文件。我已经确认这些文件存在并且可以访问,所以我不确定错误来自哪里。任何建议将不胜感激,在此先感谢:)

最佳答案

通常消息找不到文件签名表示:

1.您的文件已损坏。

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

<强>2。该文件不是 HDF5 格式。

这是您的错误消息的已知原因。但是,既然你说你确定,情况就是这样,而且你之前已经打开过文件,我给出这个仅供引用,以供可能在这里遇到问题的其他人引用:

自 2015 年 12 月起(从 7.3 版开始),Matlab 文件在其 MAT-File Level 5 Containers 中使用基于 HDF5 的格式。 (更多 doc)。 scipy 库支持早期版本的 MAT 文件(v4(1.0 级)、v6 和 v7 到 7.2)并且可以使用该库读取:

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

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

PyTables 是 h5py 的替代品,可以找到 here .

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

使用安装

pip install tables
如果您安装了 matlab,

Python MATLAB 引擎 是读取 MAT 文件的替代方法。可在此处找到文档:MATLAB Engine API for Python .

import matlab.engine
mat = matlab.engine.start_matlab()
f = mat.load("dataset.mat", nargout=1)

关于python - 在 H5PY 中打开文件时出错(未找到文件签名),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38089950/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com