2011-10-22 45 views
0

如何在Windows下使用Python找到與給定文件類型關聯的程序?python:如何確定與給定類型相關聯的默認程序,在windows下

例如,給定http我想Python確定默認瀏覽器。我可以通過運行'ftype http'從cmd提示符執行此操作。 Windows爲我提供了瀏覽器的完整路徑。

我已經試過:

subprocess.call(['http://www.google.com']) 

導致:WindowsError:[錯誤2]系統找不到指定的文件

subprocess.check_call(['cmd', 'ftype', 'http']) 

它啓動一個cmd窗口,但不做別的

+1

你爲什麼不只是使用WebBrowser模塊? http://docs.python.org/library/webbrowser.html只需調用webbrowser.open_new(url),它將在所有支持的系統上使用系統默認瀏覽器(unix,osx,windows) – ifischer

+0

這很好用,但我仍然想回答一般問題。 – foosion

+0

看看這個來源,os.startfile()很有希望 – foosion

回答

2

你缺少配置cmd運行命令,然後退出「/ C」選項:

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

閃爍,然後返回0 – foosion

+0

我也試過了,得到了WindowsError:[錯誤6]句柄無效 – foosion

+0

@foosion:這很奇怪。這對我來說可以。你使用Windows控制檯嗎?它可能不會在沒有真正的stdout文件句柄的Windows IDE中工作。 – eryksun

0

試試這個:

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

WindowsError:[錯誤6]句柄無效 – foosion

相關問題