2

Я создал приложение Mac, которое может открыть мои расширения файлов.

Но когда я протестировал его, я не получил путь к файлу, который запрашивался открыть с помощью приложения, вместо этого я получил "psn_0_151589".

Я проверил это для itunes, textedit, xcode и других приложений.

Ниже приведен пример основного кода моего приложения на Python, где я обрабатываю путь к открытому файлу

import sys
import os.path
print("File opened with this app :: ",sys.argv[1])
if(os.path.exists(sys.argv[1]):
  print("valid file :: { do something...}\n")
else:
  print("Invalid file path received :: { do nothing }\n") 

ВЫХОД :

File opened with this app :: psn_0_151589
Invalid file path received :: { do nothing }

Надеюсь, кто-то знает, как получить путь к файлу, который был открыт с помощью любого приложения.

Любая помощь будет принята с благодарностью.

1 ответ1

2

Пакеты приложений Mac OS X не получают файлы для открытия в качестве аргументов командной строки. Поскольку каждое приложение обычно имеет только один экземпляр, это ограничивает открытие дальнейших файлов. Вместо этого это сообщение отправляется, когда приложение уже запущено. Полученный аргумент - это серийный номер процесса. Больше информации здесь.


В качестве альтернативы вы можете обернуть ваш скрипт Python в действие Run Shell Script приложения Automator (#!/usr/bin/python является "оболочкой"). Когда вы решите передать ввод в качестве аргументов, они будут доступны в argv , см. Пример кода:

Скриншот

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .