Mac OS X
en Mac OS X puede utilizar Automator para crear una aplicación que llama la aplicación de pitón y pasa el archivo de entrada pat h como un argumento de cadena. En el Asistente de flujo de trabajo de aplicación, agregue la acción "Ejecutar script de shell", seleccione Pass input:
como as arguments
, y en el cuadro de texto añadir:
python /path/to/my/app/myapp.py "[email protected]"
Los "[email protected]"
pases a lo largo de cualquier argumento se encontraban en la entrada (también conocido como el archivo seleccionado) como instrumentos de cuerda. Siempre que su script esté configurado para tratar con la entrada (sys.argv
) como una lista de cadenas (la primera es la ruta de acceso de la aplicación python), entonces funcionará.
Cuando guarda ese flujo de trabajo de Automator, es tratado por OS X como cualquier otra aplicación, y puede configurar esa aplicación como predeterminada para los archivos de tipo "* .foo". Para asociar "* .foo" con esa aplicación, haga clic con el botón derecho en un archivo .foo, Get Info
, Open with: Other...
, elija la aplicación que creó en Automator y luego haga clic en el botón Change All...
.
de Windows
Un enfoque similar, pero con suerte menos involucrados podría funcionar en Windows. Probablemente se podría crear un archivo por lotes (.bat
) con la siguiente:
python C:\path\to\my\app\myapp.py %*
El %*
se expande a todos los argumentos.
Siempre que pueda asociar una extensión de archivo con ese archivo de proceso por lotes, puede hacerlo, y esa es su solución. Sin embargo, no he probado esta solución de Windows, así que tómela con un grano de sal. La solución de Mac, por otro lado, he probado.
¿Invocaría un código Java para usted? http: // stackoverflow.com/questions/550329/how-to-open-a-file-with-the-default-associated-program De lo contrario, estoy seguro de que no tiene suerte si quiere una solución portátil. – kay
A partir de esa pregunta, no pude encontrar la manera de abrir el archivo con ninguna aplicación. Ese método '.open' parece solo abrir un archivo en la aplicación predeterminada. Incluso si pudiera, no sería una solución mejor que mi respuesta, ya que necesitaría una aplicación java para abrir el script de Python. – potato