通常情況下,消息File signature not found
指示之一:
1.您的文件已損壞。
...是我認爲最有可能的。你說過你之前打開過這些文件。也許你忘記了關閉你的文件句柄,這可能會破壞文件。 嘗試使用HDF5實用程序h5debug
檢查文件(如果您已在操作系統上安裝hdf5 lib,請在Linux上檢查dpkg -s libhdf5-dev
)在命令行上提供。
2.文件不是HDF5格式。
這是您的錯誤消息的已知原因。但是既然你說過你確定了,那就是這種情況,而且你之前已經打開過這些文件,我只是將其作爲參考供其他人蔘考,可能會在此處發生:
自2015年12月以來(版本7.3) ,Matlab文件在其MAT-File Level 5 Containers(更多doc)中使用基於HDF5的格式。早期版本的MAT文件(V4(等級1.0),V6和V7〜7.2)被支持,並且可以與scipy
庫閱讀:
import scipy.io
f = scipy.io.loadmat('dataset.mat')
否則,你可能會嘗試其他方法,看看是否錯誤仍然存在:
PyTables是h5py的替代方法,可以找到here。
import tables
file = tables.openFile('test.mat')
Python的MATLAB引擎是一種替代閱讀MAT文件,如果你已經安裝了MATLAB。文檔在這裏找到:MATLAB Engine API for Python。
import matlab.engine
mat = matlab.engine.start_matlab()
f = mat.load("dataset.mat", nargout=1)