
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/python
sendo a "concha"). Quando você seleciona passar a entradacomo argumentos, eles serão disponibilizados em argv
, veja o código de exemplo: