scipy.io.matlab.

varmats_from_mat#

scipy.io.matlab.varmats_from_mat(file_obj)[source]#

從 mat 5 檔案中提取變數,作為 mat 檔案物件的序列

這在處理包含無法讀取變數的困難 mat 檔案時非常有用。此常式以原始形式提取變數,並將它們未經讀取地放回檔案流中以進行儲存或讀取。另一個用途是病態情況,即檔案中存在多個同名變數;此常式會傳回重複項,而標準讀取器會覆寫傳回字典中的重複項。

file_obj 中的檔案指標將會是未定義的。傳回的類檔案物件的檔案指標設定為 0。

參數:
file_obj類檔案

包含 mat 檔案的檔案物件

傳回值:
named_mats列表

列表包含 (name, 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']