Ich habe den folgenden Code verwendet, um einige HDF5-Dateien, die in MATLAB erstellt wurden, in Python mit H5PY zu öffnen:
%Vor%Ich bekomme jedoch den folgenden Fehler:
%Vor%Ich habe überprüft, dass die Dateien, die ich öffnen möchte, MAT-Dateien der Version 7.3 sind und das HDF5-Format haben. In der Tat habe ich H5PY verwendet, um die gleichen Dateien erfolgreich zuvor zu öffnen. Ich habe bestätigt, dass die Dateien existieren und zugänglich sind, so dass ich nicht wirklich sicher bin, woher der Fehler kommt. Jeder Rat würde sehr geschätzt werden, danke im Voraus:)
Normalerweise zeigt die Nachricht File signature not found
entweder:
1. Ihre Datei ist beschädigt.
... ist wahrscheinlich das, was ich denke. Du hast gesagt, du hast die Dateien schon einmal geöffnet. Vielleicht haben Sie vergessen, Ihre Datei zu schließen, die die Datei beschädigen kann.
Versuchen Sie, die Datei mit dem HDF5-Dienstprogramm h5debug
zu prüfen (verfügbar in der Befehlszeile, wenn Sie die hdf5-Bibliothek auf Ihrem Betriebssystem installiert haben, überprüfen Sie mit dpkg -s libhdf5-dev
unter Linux).
2. Die Datei ist nicht im HDF5-Format.
Dies ist eine bekannte Ursache für Ihre Fehlermeldung. Aber da Sie gesagt haben, dass Sie sicher sind, dass dies der Fall ist und Sie die Dateien schon einmal geöffnet haben, gebe ich dies nur als Referenz für andere, die hier stolpern könnten:
Seit Dezember 2015 (ab Version 7.3) verwenden Matlab-Dateien das HDF5-basierte Format in ihrer MAT-File Level 5 Containers (mehr Dokument ). Frühere Versionen von MAT-Dateien (v4 (Level 1.0), v6 und v7 bis 7.2) werden von der scipy
library unterstützt und können mit ihr gelesen werden:
Andernfalls können Sie andere Methoden ausprobieren und sehen, ob der Fehler weiterhin besteht:
PyTables ist eine Alternative zu h5py und wird hier gefunden.
%Vor%Python MATLAB Engine ist eine Alternative zum Lesen von MAT-Dateien, wenn Sie matlab installiert haben. Dokumentation finden Sie hier: MATLAB Engine API für Python .
%Vor%