Как узнать, какой файл требуется открыть с помощью приложения Mac?

Как узнать, какой файл требуется открыть с помощью приложения Mac?

Я создал приложение для 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, см. пример кода:

Скриншот

Связанный контент