Estoy tratando de encontrar la manera de hacer un programa Python abrir un archivo cuando un usuario hace clic derecho sobre el archivo y selecciona "Abrir con". Por ejemplo, quiero que un usuario pueda hacer clic derecho en un archivo de texto y seleccionar mi programa para que mi programa pueda procesar el archivo de texto. ¿El nombre del archivo de texto pasó a mi programa de alguna manera? Gracias."Abrir con ..." un archivo en Windows, con una aplicación de pitón
Respuesta
El problema con este enfoque es que el archivo .py no es un archivo ejecutable; Windows pasará el archivo de texto como parámetro al archivo .py, pero el archivo .py en sí no hará nada, ya que no es un archivo ejecutable.
Lo que puede hacer es compilar su secuencia de comandos con py2exe para obtener un ejecutable real, que puede especificar en la pantalla "Abrir con ..." (incluso puede registrarlo como predeterminado para cualquier archivo * .foo) La ruta al archivo .foo que se pasa debe ser sys.argv[1]
en su secuencia de comandos.
Primero tendrá que registrar su secuencia de comandos para ejecutar con Python en ProgId en el registro. Como mínimo, necesitará el verbo abierta definido:.
HKEY_CURRENT_USER\Software\Classes\MyApp.ext\
(Default) = "Friendly Name"
DefaultIcon\
(Default) = "path to .ico file"
shell\
open\
command\
(Default) = 'path\python.exe "path\to\your\script.py" "%L"'
Puede sustituir HKEY_LOCAL_MACHINE
si está instalando en todo el equipo * También hay convenciones de versiones de que es probable que pueda ignorar. La sección de MSDN en File Types tiene información más detallada.
El segundo paso consiste en añadir su ProgId a los OpenWithProdIds clave de la extensión que desea que aparezca en la lista para:
HKEY_CURRENT_USER\Software\Classes\.ext\OpenWithProgIds
MyApp.ext = None
El valor de la clave no importa, siempre y cuando la nombre coincide exactamente con su ProgId.
* Tenga en cuenta que HKEY_CLASSES_ROOT
es en realidad una llave falsa que 'contiene' una unión de ambos HKLM\Software\Classes
y HKCU\Software\Classes
; si escribe en el registro, debe elegir una de las claves reales. No necesita elevar para instalar en HKEY_CURRENT_USER
.
Declararé que no lo he intentado, ya que no quiero complicar particularmente mi configuración en esta máquina. MSDN sugiere que se deben establecer algunos otros valores, pero un vistazo rápido a mi registro indica que no son necesarios. Definitivamente interesado si esta solución mínima funciona; ve y edita cualquier fragmento extra que me haya perdido. – Zooba
Esto simplemente no funciona; al seleccionar el .py en el menú 'abrir con' aún se informa que no es una aplicación win32. –
Mi enfoque es utilizar un archivo .bat de redirección que contiene python someprogram.py %1
. El %1
pasa la ruta del archivo en el script en Python que se puede acceder con
from sys import argv argv[1]
- 1. ¿Cómo abrir un archivo con una aplicación predeterminada en SWT?
- 2. ¿Puedo abrir una aplicación de Windows 8 con una URL?
- 3. ¿Cómo funciona Windows '' Abrir con '?
- 4. ¿Cómo abrir un archivo con la aplicación predeterminada en cmd?
- 5. ¿Firma una aplicación de Windows con un archivo .SPC?
- 6. Abrir archivo con la aplicación asociada
- 7. Abrir archivo con asociación
- 8. Abrir archivo con fopen, ruta absoluta dada en Windows
- 9. Abrir fstream con archivo con nombre de archivo Unicode en Windows usando el compilador no MSVC
- 10. Abrir un archivo de texto con WPF
- 11. Cómo abrir un archivo empaquetado con WinRT
- 12. Abrir y leer un archivo con askopenfilename
- 13. Abrir una ventana del explorador con el archivo designado seleccionado
- 14. Abrir un archivo PDF desde una aplicación WinJS
- 15. leer un archivo binario (pitón)
- 16. abrir archivo con un nombre de archivo unicode?
- 17. ¿Dónde almacena Windows su configuración "Abrir con"?
- 18. Abrir archivo en otra aplicación
- 19. ¿Cómo abrir una tubería con nombre de Windows desde Java?
- 20. La lectura de un archivo binario con el pitón
- 21. no se puede abrir url Unicode con el pitón
- 22. ¿Cómo se reproduce un archivo de sonido en una aplicación Metro de Windows 8 con WinRT?
- 23. asociar una extensión de archivo personalizada con la aplicación java en Windows
- 24. Abrir un archivo pdf programáticamente en un destino con nombre
- 25. Abrir archivo local con AIR/Flex
- 26. archivo de escritura en USB con el pitón en Linux
- 27. ¿Abrir un archivo de Word protegido con contraseña en Java?
- 28. Abrir punto-archivo con diálogo en OSX
- 29. pitón de Windows Copia de archivos con soporte Comodín
- 30. Crear un archivo de texto vacío en Mac OS sin abrir primero una aplicación
py2exe es una exageración, ya que hace un programa para un EXE independiente que no requiere pitón en absoluto y que necesita volver a compilar cada vez el programa se cambia (en caso de que lo desarrolles). Hay contenedores de exe en% python% \ Scripts \ que acaban de iniciar un script de python con el mismo nombre. Alguien sabe algo al respecto? –