Problem
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
Solution #1
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):
http://docs.python.org/library/webbrowser.html
On Linux, Ubuntu 10.10, I was able to successfully test this.
Answered by kobrien
Solution #2
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
Solution #3
The webbrowser module can be used.
webbrowser.open(url)
Answered by Ivo Wetzel
Solution #4
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
Solution #5
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