class Aspen(): def __init__(self, aspenFile): ''' Parameters file: str, excel file ''' CoInitialize() self.file = aspenFile self.COM = DispatchEx('Apwn.Document') self.COM.InitFromArchive2(self.file) def get_value(self, aspenPath): ''' Parameters aspenPath: str, path in ASPEN tree Returns value: num or str, value in ASPEN tree node ''' value = self.COM.Tree.FindNode(aspenPath).Value return value def set_value(self, aspenPath, value, ifFortran): ''' Parameters aspenPath: str, path in ASPEN tree value: float or str, value to set ifFortran: bool, whether it is a Fortran variable ''' if ifFortran: oldValue = self.COM.Tree.FindNode(aspenPath).Value self.COM.Tree.FindNode(aspenPath).Value = re.sub( r'(?<==).+', str(value), oldValue) else: self.COM.Tree.FindNode(aspenPath).Value = float(value) def run_model(self): self.COM.Reinit() self.COM.Engine.Run2() def save_model(self, saveFile): ''' Parameters saveFile: str, file name to save (.bkp) ''' self.COM.SaveAs(saveFile) def close(self): self.COM.Close()