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_mats列表

列表包含 (名称,BytesIO) 的元组,其中 BytesIO 是一个类文件对象,包含单个变量的 mat 文件内容。BytesIO 包含带有原始头部和单个变量的字符串。如果 var_file_obj 是一个单独的 BytesIO 实例,那么可以使用类似 open('test.mat', 'wb').write(var_file_obj.read()) 的方式将其保存为 mat 文件。

示例

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