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

2

Eu criei um aplicativo mac que pode ser aberto em minhas extensões de arquivo.

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

Eu verifiquei itunes, textedit, xcode e outros aplicativos.

Abaixo está o código principal do meu aplicativo python, onde eu 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") 

OUTPUT:

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

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

Qualquer ajuda seria muito apreciada.

    
por ramsey 27.09.2012 / 16:02

1 resposta

2

Os pacotes de aplicativos do Mac OS X não recebem os arquivos a serem abertos como argumentos de linha de comando. Como cada aplicativo geralmente tem apenas uma única instância, isso restringiria a abertura de arquivos adicionais. 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 .

Você pode alternativamente encapsular seu script Python em uma ação Executar Shell Script do aplicativo Automator ( #!/usr/bin/python sendo o "shell"). Quando você seleciona para passar a entrada como argumentos , eles serão disponibilizados em argv , veja o exemplo de código:

    
por 28.09.2012 / 19:13