读取文件类型扩展名关联列表
Read file type extension association list
我正在编写一个 Python 自动运行另一个程序的程序。我希望打开这样的程序,而不必提示用户输入该程序的可执行路径,或要求用户创建自定义 PATH 变量。我希望执行的程序不会为其可执行文件创建 PATH 变量,但会创建文件类型扩展名关联。我的这个程序是 SolidWorks。
以下是通过 Windows 控制面板访问文件类型关联列表的方式:
https://www.lifewire.com/how-to-change-file-associations-in-windows-2624477
我如何使用 Python 从控制面板外部读取此列表或列表中的特定条目以提取特定文件类型的程序路径?就我而言,我希望从 .SLDPRT 文件扩展名关联中提取 SolidWorks 启动器可执行文件的路径。
您可以在 Windows 注册表中访问文件扩展名信息:
>>> import winreg
>>> file_ext = ".py"
>>> k = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, fr"SOFTWARE\Classes\{file_ext}")
>>> k
'Python.File'
>>> winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, fr"SOFTWARE\Classes\{k}\shell\open\command")
'"C:\WINDOWS\py.exe" "%L" %*'
我正在编写一个 Python 自动运行另一个程序的程序。我希望打开这样的程序,而不必提示用户输入该程序的可执行路径,或要求用户创建自定义 PATH 变量。我希望执行的程序不会为其可执行文件创建 PATH 变量,但会创建文件类型扩展名关联。我的这个程序是 SolidWorks。
以下是通过 Windows 控制面板访问文件类型关联列表的方式: https://www.lifewire.com/how-to-change-file-associations-in-windows-2624477
我如何使用 Python 从控制面板外部读取此列表或列表中的特定条目以提取特定文件类型的程序路径?就我而言,我希望从 .SLDPRT 文件扩展名关联中提取 SolidWorks 启动器可执行文件的路径。
您可以在 Windows 注册表中访问文件扩展名信息:
>>> import winreg
>>> file_ext = ".py"
>>> k = winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, fr"SOFTWARE\Classes\{file_ext}")
>>> k
'Python.File'
>>> winreg.QueryValue(winreg.HKEY_LOCAL_MACHINE, fr"SOFTWARE\Classes\{k}\shell\open\command")
'"C:\WINDOWS\py.exe" "%L" %*'