Como obter qual arquivo é solicitado para abrir usando um aplicativo Mac?

Como obter qual arquivo é solicitado para abrir usando um aplicativo Mac?

Eu criei um aplicativo Mac que pode abrir minhas extensões de arquivo.

Mas quando testei, não obtive o caminho do arquivo solicitado para abrir usando o aplicativo, em vez disso obtive o "psn_0_151589".

Eu verifiquei o iTunes, textedit, xcode e outros aplicativos.

Abaixo está o código principal de exemplo do meu aplicativo python, onde processo o caminho do arquivo aberto

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") 

SAÍDA :

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

Espero que alguém saiba como obter o caminho do arquivo que foi aberto usando qualquer aplicativo.

Qualquer ajuda seria muito apreciada.

Responder1

Os pacotes de aplicativos do Mac OS X não recebem os arquivos a serem abertos como argumentos de linha de comando. Como todo aplicativo geralmente possui apenas uma instância, isso restringiria a abertura de mais arquivos. Em vez disso, é uma mensagem enviada quando o aplicativo já está em execução. O argumento que você recebe é o número de série do processo.Mais informações aqui.


Como alternativa, você poderia agrupar seu script Python em um aplicativo AutomatorExecute o ShellScriptação ( #!/usr/bin/pythonsendo a "concha"). Quando você seleciona passar a entradacomo argumentos, eles serão disponibilizados em argv, veja o código de exemplo:

Captura de tela

informação relacionada