scipy.io.matlab.

varmats_from_mat#

scipy.io.matlab.varmats_from_mat(file_obj)[источник]#

Извлечь переменные из файла mat 5 в виде последовательности объектов mat-файлов

Это может быть полезно при работе со сложным mat-файлом, содержащим нечитаемые переменные. Эта процедура извлекает переменные в сыром виде и помещает их, не читая, обратно в файловый поток для сохранения или чтения. Другой случай использования — патологическая ситуация, когда в файле есть несколько переменных с одинаковым именем; эта процедура возвращает дубликаты, тогда как стандартный читатель перезаписывает дубликаты в возвращаемом словаре.

Указатель файла в file_obj будет неопределён. Указатели файлов для возвращаемых файлоподобных объектов установлены в 0.

Параметры:
file_objфайлоподобный

файловый объект, содержащий mat-файл

Возвращает:
named_matslist

список содержит кортежи (name, BytesIO), где BytesIO — файлоподобный объект, содержащий содержимое mat-файла для одной переменной. BytesIO содержит строку с оригинальным заголовком и одной переменной. Если var_file_obj является отдельным экземпляром BytesIO, тогда сохранить как mat-файл с помощью, например, open('test.mat', 'wb').write(var_file_obj.read())

Примеры

>>> 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']