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