varmats_from_mat#
- scipy.io.matlab.varmats_from_mat(file_obj)[Quelle]#
Variablen aus einer mat 5-Datei als Sequenz von mat-Datei-Objekten extrahieren
Dies kann bei schwierigen Mat-Dateien nützlich sein, die unlesbare Variablen enthalten. Diese Routine extrahiert die Variablen in Rohform und gibt sie, ungelesen, zurück in einen Dateistream zum Speichern oder Lesen. Ein weiterer Anwendungsfall ist der pathologische Fall, in dem mehr als eine Variable mit demselben Namen in der Datei vorhanden ist; diese Routine gibt Duplikate zurück, während der Standardleser Duplikate im zurückgegebenen Wörterbuch überschreibt.
Der Dateizeiger in file_obj ist undefiniert. Dateizeiger für die zurückgegebenen dateiähnlichen Objekte sind auf 0 gesetzt.
- Parameter:
- file_objdateiähnlich
Datei-Objekt, das die Mat-Datei enthält
- Rückgabe:
- named_matsListe
Die Liste enthält Tupel von (Name, BytesIO), wobei BytesIO ein dateiähnliches Objekt ist, das den Inhalt der Mat-Datei für eine einzelne Variable enthält. Das BytesIO enthält eine Zeichenkette mit dem ursprünglichen Header und einer einzelnen Variable. Wenn
var_file_objeine einzelne BytesIO-Instanz ist, dann speichern Sie sie als Mat-Datei, indem Sie z.B.open('test.mat', 'wb').write(var_file_obj.read())verwenden.
Beispiele
>>> import scipy.io >>> import numpy as np >>> from io import BytesIO >>> from scipy.io.matlab._mio5 import varmats_from_mat >>> mat_fileobj = BytesIO() >>> scipy.io.savemat(mat_fileobj, {'b': np.arange(10), 'a': 'a string'}) >>> varmats = varmats_from_mat(mat_fileobj) >>> sorted([name for name, str_obj in varmats]) ['a', 'b']