What can I use to call the OS to open a URL in whatever browser the user has as default? Not worried about cross-OS compatibility; if it works in linux thats enough for me!
Asked by Bolster
To launch the user’s default browser with a specific url, follow these steps:
import webbrowser webbrowser.open(url[, new=0[, autoraise=True]])
This functionality’s documentation may be found here. It’s part of Python’s standard library (stdlibs):
On Linux, Ubuntu 10.10, I was able to successfully test this.
Answered by kobrien
Personally, I wouldn’t bother with the webbrowser module.
It’s a jumble of sniffing for specific browsers that won’t identify the user’s default browser if they have others installed, and won’t find a browser if it doesn’t recognize the name (eg Chrome).
On Windows, the os.startfile function, which also works with a URL, is preferable. You can use the open system command on OS X. GNOME, KDE, and XFCE all support the freedesktop.org standard command xdg-open on Linux.
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
On popular platforms, this will result in a better user experience. On other platforms, you might be able to use a webbrowser. However, if you’re using an obscure/unusual/embedded OS that doesn’t support any of the above, chances are your webbrowser will as well.
Answered by bobince
The webbrowser module can be used.
Answered by Ivo Wetzel
Then how about combining @kobrien and @bobince’s codes:
import subprocess import webbrowser import sys url = 'http://test.com' if sys.platform == 'darwin': # in case of OS X subprocess.Popen(['open', url]) else: webbrowser.open_new_tab(url)
Answered by Kenial
Take a look at the module webbrowser.
Answered by Aaron Digulla
Post is based on https://stackoverflow.com/questions/4216985/call-to-operating-system-to-open-url