我知道使用python读取.mat文件的两种选择。对于7.3版之前的.mat文件,功能scipy.io.loadmat可以完美地工作。对于7.3版本的.mat文件,您需要使用hfpy之类的HDF5阅读器。
我的问题是;有没有一种方法可以找到给定文件在python中的.mat版本?这样,我可以创建一个读取任何.mat的函数。
答案 0 :(得分:1)
EAFP(请求宽恕比允许容易)
scipy.loadmat 会检查版本并在不支持的情况下引发错误。
try:
import scipy.io as sio
test = sio.loadmat('test.mat')
except NotImplementedError:
import h5py
with h5py.File('test.mat', 'r') as hf:
data = hf['name-of-dataset'][:]
except:
ValueError('could not read at all...')
如果您想自己进行检查,可以使用scipy.io.matlab.miobase.py中的get_matfile_version()
。用法与第一个链接相同。