我们正在创建一个python程序,它根据用户对程序的输入在Polyworks中执行特定的宏。现在代码是:
roto.command.CommandExecute('MACRO EXEC("C:\\RotoWorks\\Macros\\CentrifugalCompressor")')
然而,这假设我们的程序始终安装在C:\ RotoWorks中。理想情况下,我们的应用程序是便携我确信这是一种检索存储Rotoworks的文件路径的方法,然后将文件路径的其余部分连接到最后。我该怎么做?
答案 0 :(得分:2)
您可以从文件的jmsMessageType=Object
属性中检索路径。在该属性上使用__file__
来检索文件的绝对路径,然后使用os.path.abspath
来检索包含目录:
os.path.dirname
递归使用import os
file_directory = os.path.dirname(os.path.abspath(__file__))
path = os.path.join(file_directory, other_path) # join directory to an inner path
roto.command.CommandExecute('MACRO EXEC({})'.format(path))
移出任意数量的目录。