views:

965

answers:

5

The webbrowser library provides a convenient way to launch a URL with a browser window through the webbrowser.open() method. Numerous browser types are available, but there does not appear to be an explicit way to launch Internet Explorer when running python on windows.

WindowsDefault only works if Internet Explorer is set as the default browser, which is not an assumption I can make.

Is there a way to explicitly launch a URL into Internet Explorer without reverting to windows API calls?

A: 

The simplest way:

import subprocess
subprocess.Popen(r'"C:\Program Files\Internet Explorer\IEXPLORE.EXE" www.google.com')
Mark
Keep in mind that non-english versions of Windows keep name its `Program Files` folder differently. `Archivos de Programa`, for example in spanish. You should use `%PROGRAMFILES%` instead.
voyager
+1  A: 

You can always do something like

subprocess.Popen('"C:\\Program Files\\Internet Explorer\\iexplore.exe" http://www.example.com')
Iceman
+3  A: 
>>> ie = webbrowser.get('c:\\program files\\internet explorer\\iexplore.exe')
>>> ie.open('http://google.com')
True
SilentGhost
+3  A: 
iexplore = os.path.join(os.environ.get("PROGRAMFILES", "C:\\Program Files"),
    "Internet Explorer\\IEXPLORE.EXE")
ie = webbrowser.BackgroundBrowser(iexplore)
ie.open(...)

This is what the webrowser module uses internally.

Lukáš Lalinský
A: 

If you plan to use the script in more than your machine, keep in mind that not everyone has a English version of Windows

import subprocess
import os

subprocess.Popen(r'"' + os.environ["PROGRAMFILES"] + '\Internet Explorer\IEXPLORE.EXE" www.google.com')
voyager