我正在使用一个脚本,该脚本将使用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个以上的属性。有更有效的方法吗?