# Adding exception for a file to default programs in windows

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?

• Probably not. Consider creating shortcuts for the exception files. – Scott Jan 27 at 18:10

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


Here E:\VSCode\Code.exe is the full path of VSCode executable. The path can be changed with Registry Editor.

Open 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.