
Я создал приложение для 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
Пакеты приложений Mac OS X не получают файлы для открытия в качестве аргументов командной строки. Поскольку каждое приложение обычно имеет только один экземпляр, это ограничит открытие дополнительных файлов. Вместо этого это сообщение отправляется, когда приложение уже запущено. Аргумент, который вы получаете, — это серийный номер процесса.Более подробная информация здесь.
В качестве альтернативы вы можете обернуть свой скрипт Python в приложение AutomatorЗапустить скрипт оболочкидействие ( #!/usr/bin/python
будучи «оболочкой»). Когда вы выбираете передачу вводакак аргументы, они будут доступны в argv
, см. пример кода: