Можно ли использовать IronPython для возврата пути к текущему проекту *.dxp в виде строки?

Это должно (я думаю) иметь простой ответ, если предположить, что ответ существует.

Можно ли использовать IronPython для возврата пути к текущему проекту *.dxp в виде строки? Я часто использую что-то подобное в VBA, и это стало довольно полезным.

Я пытался искать, но мне трудно работать с материалами TIBCO по Python. :\


person Community    schedule 06.05.2015    source источник


Ответы (1)


Скрипт ниже должен помочь вам в этом. Есть 2 способа получить путь к анализу в зависимости от того, используете ли вы файл библиотеки или .dxp. Ваш конкретный вопрос касается .dxp, но ради передачи знаний я решил упомянуть об этом.

Класс DocumentMetaData в пространстве имен Application — ключевой элемент, который вам здесь нужен. Приведенный ниже сценарий пытается получить путь из свойства на основе библиотеки. Если это равно «Нет» (то есть не из библиотеки), мы пробуем путь к файлу. Кроме того, я выполняю некоторую логику подстроки, чтобы получить точное имя анализа в виде среза (подстроки) полного пути.

from Spotfire.Dxp.Application import DocumentMetadata
dmd = Application.DocumentMetadata #Get MetaData
path = str(dmd.LoadedFromLibraryPath) #Get Path
if path == "None": #If this isn't a library file get the local file path
    path = str(dmd.LoadedFromFileName)
    sub = path.rfind("\\") + 1 #Find "\" from the right and grab the position of the character past it
else:
    sub = path.rfind("/") + 1 #Find "/" from the right and grab the position of the character past it
length = len(path) #get length of path
analysis = path[sub:length] #The specific analysis is the slice of the path after the farthest right '/' character.

print path #for testing
print analysis #for testing

Пример вывода распечаток:
C:\Users\CLESIEMO3\Desktop\super_neat_file.dxp
super_neat_file.dxp

person clesiemo3    schedule 06.05.2015