如何有效地解析.mat文件并将其不同部分作为类属性?

时间:2019-05-03 18:59:58

标签: python oop scipy

我正在使用一个脚本,该脚本将使用scipy.io模块从matlab加载.mat文件,并从数据中获取相关信息,最终以标准化格式输出电子表格。

然后,我的第一步是设置一个类,该类将打开文件并获取我需要的所有数据,因此我可以将实例传递给另一个类/函数以生成输出文件。

现在,我正在通过一次分配一个属性来接近代码,但是我想知道是否有更好的方法可以不必将整个数据保存到实例中或多次打开文件

class Logfile():
    """
    Class to hold the logfile object. It will open and 
    parse the original .mat file, keeping the relevant info
    as attributes
    """

    def __init__(self, path: str):
        self.path = path

    def initialize(self) -> np.array:
        data_struct = scipy.io.loadmat(self.path)['Data']
        return data_struct

    @property
    def subject_id(self):
        struct = self.initialize()
        subject_array = struct['SubjectID']
        sub_id = subject_array[0][0][0]
        return sub_id

为简单起见,示例代码仅显示一个属性,但是需要从loadmat函数提供的data_structure的不同部分中获取3或4个以上的属性。有更有效的方法吗?

0 个答案:

没有答案