Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:如何在windows下确定与给定类型关联的默认程序_Python_Windows - Fatal编程技术网

python:如何在windows下确定与给定类型关联的默认程序

python:如何在windows下确定与给定类型关联的默认程序,python,windows,Python,Windows,如何在Windows下使用Python查找与给定文件类型关联的程序 例如,给定http,我希望python确定默认浏览器。我可以通过运行“ftype http”从cmd提示符执行此操作。Windows为我提供了浏览器的完整路径 我试过: subprocess.call(['http://www.google.com']) 这导致:WindowsError:[错误2]系统找不到指定的文件 subprocess.check_call(['cmd', 'ftype', 'http']) 它会启动一

如何在Windows下使用Python查找与给定文件类型关联的程序

例如,给定http,我希望python确定默认浏览器。我可以通过运行“ftype http”从cmd提示符执行此操作。Windows为我提供了浏览器的完整路径

我试过:

subprocess.call(['http://www.google.com'])
这导致:WindowsError:[错误2]系统找不到指定的文件

subprocess.check_call(['cmd', 'ftype', 'http'])
它会启动一个cmd窗口,但不执行任何其他操作

请尝试以下操作:

print subprocess.check_output(['ftype', 'http'])

您缺少将
cmd
配置为运行命令然后退出的“/c”选项:

subprocess.check_output(['cmd', '/c', 'ftype http'])

WindowsError:[错误6]句柄无效。为什么不直接使用webbrowser模块?只需调用webbrowser.open_new(url),它将在所有受支持的系统(unix、osx、windows)上使用系统默认浏览器,运行良好,+1,但我仍然希望得到一般问题的答案。查看该问题的源代码,os.startfile()是promisingI我也尝试过,并得到了WindowsError:[错误6]把手是invalid@foosion:真奇怪。这对我来说很好。您正在使用Windows控制台吗?在没有真正标准文件句柄的Windows IDE中,它可能无法工作。非常奇怪。我使用的是Windows XP,但这不重要。更糟糕的是,我只是尝试从python命令行解释器运行,它返回了InternetExplorer,这不是我的默认浏览器。这里似乎有点奇怪。@foosion:它在控制台中对我有效,在Python 2.7.2和3.2.2中的IDLE、PyScripter和IEP中也有效。我认为
ftype
返回HKLM\Software\Classes中的值,但您可能在HKCU\Software\Classes中有一个设置覆盖了该值。@foosion:如果我使用IDLE.bat或单击IDLE.py或IDLE.pyw,该命令在IDLE中对我有效。如果我使用
python.exe
运行,或者将
start
pythonw.exe
相结合,即
start\pythonxx\pythonw.exe\pythonxx\lib\idlelib\idle.pyw
,它也可以从控制台运行(xx是27/32)。但如果不使用
start
,则在后一种情况下会出现无效句柄错误。也许这会帮助您找出配置中的错误。