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