Solución:
Esta no es realmente una pregunta de programación, pero lo que debe hacer es averiguar cómo obtener el ejecutable de Python en la clave de registro que abre su archivo de datos.
Por ejemplo, creé un pequeño script de Python llamado opener.py
que se ve así:
import sys
print(sys.argv)
input()
Entonces creé un testfile.foo
y usó el botón “cambiar” en el cuadro de diálogo de propiedades de ese archivo para elegir opener.py
. (Puede hacer esto si hace clic en Examinar y cambia el filtro de archivo del cuadro de diálogo Abrir con a “Todos los archivos”).
Por supuesto, esto no funcionó (como notó). Así que abrí regedit
y buscado opener.py
y lo encontró en la siguiente clave de registro:
HKEY_CURRENT_USERSoftwareClassesApplicationsopener.pyshellopencommand
El valor predeterminado de esta clave era "C:opener.py" %1
. Lo cambié a python "C:opener.py" %1
. ¡Funcionó!
En pocas palabras, para hacer esto correctamente, debe editar el registro de manera personalizada. En realidad, configurar la asociación de archivos es más complejo que simplemente editar esa clave (también debe indicar que .foo
está asociado con opener.py
).
Un enfoque alternativo sería convertir su secuencia de comandos de Python en un ejecutable independiente usando una de las varias herramientas disponibles para ese propósito, o escribir un pequeño ejecutable en C que inicie la secuencia de comandos.
- presione la tecla de Windows
- escriba cmd
- haga clic derecho en el resultado y elija “ejecutar como administrador”
assoc .foo=foofile
ftype foofile="C:Users<user>AppDataLocalProgramsPythonPYTHON~1python.exe" "C:<whatever>fooOpener.py" "%1" %*
Usar pythonw.exe
si es un .pyw
archivo (para evitar que se genere una ventana de cmd).
Si desea utilizar un tipo de archivo existente, puede encontrar su alias sin asignar nada. Por ejemplo, assoc .txt
devoluciones .txt=txtfile
.