¿Cómo saber qué archivo se solicita abrir usando una aplicación de Mac?

¿Cómo saber qué archivo se solicita abrir usando una aplicación de Mac?

He creado una aplicación para Mac que puede abrir mis extensiones de archivos.

Pero cuando lo probé, no obtengo la ruta del archivo solicitado para abrir usando la aplicación, sino que obtuve "psn_0_151589".

Lo revisé para iTunes, TextEdit, Xcode y otras aplicaciones.

A continuación se muestra el código principal de muestra de mi aplicación Python donde proceso la ruta del archivo abierto.

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

PRODUCCIÓN :

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

Espero que alguien sepa cómo obtener la ruta del archivo que se abrió con cualquier aplicación.

Cualquier ayuda sería muy apreciada.

Respuesta1

Los paquetes de aplicaciones de Mac OS X no reciben los archivos que se van a abrir como argumentos de línea de comando. Como cada aplicación normalmente solo tiene una instancia, esto restringiría la apertura de más archivos. En cambio, es un mensaje enviado cuando la aplicación ya se está ejecutando. El argumento que recibe es el número de serie del proceso.Más información aquí.


Alternativamente, puede envolver su secuencia de comandos Python en una aplicación Automator.Ejecutar script de shellacción ( #!/usr/bin/pythonsiendo el "shell"). Cuando seleccionas pasar la entradacomo argumentos, estarán disponibles en argv; consulte el código de muestra:

Captura de pantalla

información relacionada