Windows 10 has a default programs section in settings where we can associate a default program to open the file with its file extension. I have a situation where I want to open all the .py files with VSCode(IDE) except few which I want to associate with python.exe. But when I change the file association it changes for all .py files. Any nice way to handle this without changing extensions back and forth?
Disclaimer: This is a workaround. The following method requires administrator permission to change registry values.
Basis: After installing Python (any version),
.py file is automatically associated with
python.exe. In the following method, that
python.exe association with
.py extension is preserved. Because anytime we/users execute
.py file with
python.exe and this default file association helps to do it without typing
python.exe in commands. Also Python files can be visually distinguished with blue-yellow pythons :) So what to do? Just add a context menu (i.e. right click dialog box) for
.py file only which shows "Edit with VSCode" option.
Procedure: First check if
.py is actually associated with
python.exe (optional). Run these command:
assoc .py ftype Python.File
From the first command output, grab the
Python.File file type and write a text file as following:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Python.File\shell\Edit with VSCode\command] @="E:\\VSCode\\Code.exe \"%1\""
E:\VSCode\Code.exe is the full path of VSCode executable. The path can be changed with Registry Editor.
HKEY_CLASSES_ROOT\Python.File\shell\Edit with VScode\command registry in Registry Editor. Edit the
(Default) value with your own VSCode full path. So what does this registry value do? It adds a context menu for
Python.File file type (e.g. for
.py files) which execute
Code.exe C:\path\to\abc.py command.