使用python检测.mat版本

时间:2018-08-07 08:08:53

标签: python matlab scipy hdf5

我知道使用python读取.mat文件的两种选择。对于7.3版之前的.mat文件,功能scipy.io.loadmat可以完美地工作。对于7.3版本的.mat文件,您需要使用hfpy之类的HDF5阅读器。

我的问题是;有没有一种方法可以找到给定文件在python中的.mat版本?这样,我可以创建一个读取任何.mat的函数。

1 个答案:

答案 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()。用法与第一个链接相同。