【发布时间】:2018-07-30 08:20:44
【问题描述】:
我正在编写一个 python 脚本,通过其 COM 函数使用 Aspen Plus 自动进行一些模拟。但是当我想获得分子量值时,我必须这样写:
import os
import win32com.client as win32
aspen = win32.Dispatch('Apwn.Document')
aspen.InitFromArchive2(os.path.abspath('Aspen\\Flash.bkp'))
MW = aspen.Tree.Data.Properties.Parameters.Pure Components.REVIEW-1.Input.VALUE.MW ACID.Value
但它在 REVIEW-1 中引发语法错误,因为连字符不能用作标识符。我怎么能这样使用它们?
编辑:
我将点语法替换为 Aspen COM 的 FindNode 函数,如下所示:
MW = aspen.Tree.FindNode("\\Data\\Properties\\Parameters\\Pure Components\\REVIEW-1")
但我仍然得到一个 None 对象,但是这个:
MW = aspen.Tree.FindNode("\\Data\\Properties\\Parameters\\Pure Components")
工作,得到“COMObject FindNode”,所以我认为问题也出在连字符上。
提前致谢!
【问题讨论】:
-
在此之前也有空格。在标识符中使用破折号和空格是无效的python
-
你试过使用 importlib 吗? docs.python.org/3/library/…
-
我会看看importlib,但它可以与COM函数一起使用吗?另外,如果有人通过这种方式找到答案,我会更新我的问题
-
你能从你得到的有效的非无节点中列出可用的子节点吗?我确定这只是一个大小写/连字符类型的问题
-
[也许图片更有帮助][1] [1]:i.stack.imgur.com/4AZtJ.png
标签: python python-3.x win32com aspen