Thường thì nhắn File signature not found
chỉ ra một trong hai:
1. tập tin của bạn bị hỏng.
... là những gì tôi nghĩ là rất có thể. Bạn nói bạn đã mở các tệp trước đó. Có lẽ bạn quên đóng tập tin xử lý của bạn mà có thể làm hỏng tập tin. Thử kiểm tra tệp bằng tiện ích HDF5 h5debug
(có sẵn trên dòng lệnh nếu bạn đã cài đặt lib hdf5 trên hệ điều hành của mình, hãy kiểm tra với dpkg -s libhdf5-dev
trên Linux).
2. Tệp không ở định dạng HDF5.
Đây là nguyên nhân đã biết cho thông báo lỗi của bạn. Nhưng kể từ khi bạn nói rằng bạn đã chắc chắn, rằng đây là trường hợp và bạn đã mở các tập tin trước, tôi đưa ra điều này chỉ để tham khảo cho những người khác có thể vấp ngã ở đây:
Kể từ tháng 12 năm 2015 (kể từ phiên bản 7.3) , Các tệp Matlab sử dụng định dạng dựa trên HDF5 trong MAT-File Level 5 Containers của chúng (hơn doc). Đầu phiên bản MAT-file (v4 (Level 1.0), v6 và v7 đến 7.2) được hỗ trợ bởi và có thể được đọc với scipy
thư viện:
import scipy.io
f = scipy.io.loadmat('dataset.mat')
Nếu không, bạn có thể thử phương pháp khác và xem liệu lỗi vẫn tồn tại:
PyTables là một thay thế cho h5py và được tìm thấy here.
import tables
file = tables.openFile('test.mat')
Python MATLAB cơ là một thay thế để đọc file MAT, nếu bạn đã matlab cài đặt. Tài liệu được tìm thấy ở đây: MATLAB Engine API for Python.
import matlab.engine
mat = matlab.engine.start_matlab()
f = mat.load("dataset.mat", nargout=1)