Call to operating system to open url? Call to operating system to open url? python python

Call to operating system to open url?


Here is how to open the user's default browser with a given url:

import webbrowserwebbrowser.open(url[, new=0[, autoraise=True]])

Here is the documentation about this functionality. It's part of Python's stdlibs:

http://docs.python.org/library/webbrowser.html

I have tested this successfully on Linux, Ubuntu 10.10.


Personally I really wouldn't use the webbrowser module.

It's a complicated mess of sniffing for particular browsers, which will won't find the user's default browser if they have more than one installed, and won't find a browser if it doesn't know the name of it (eg Chrome).

Better on Windows is simply to use the os.startfile function, which also works on a URL. On OS X, you can use the open system command. On Linux there's xdg-open, a freedesktop.org standard command supported by GNOME, KDE and XFCE.

if sys.platform=='win32':    os.startfile(url)elif sys.platform=='darwin':    subprocess.Popen(['open', url])else:    try:        subprocess.Popen(['xdg-open', url])    except OSError:        print 'Please open a browser on: '+url

This will give a better user experience on mainstream platforms. You could fall back to webbrowser on other platforms, perhaps. Though most likely if you're on an obscure/unusual/embedded OS where none of the above work, chances are webbrowser will fail too.


Then how about mixing codes of @kobrien and @bobince up:

import subprocessimport webbrowserimport sysurl = 'http://test.com'if sys.platform == 'darwin':    # in case of OS X    subprocess.Popen(['open', url])else:    webbrowser.open_new_tab(url)