Problem
What command can I provide to get the OS to open a URL in the user’s default browser? I’m not concerned with cross-OS compatibility; if it works under Linux, that’s all that matters to 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
I have tested this successfully on Linux, Ubuntu 10.10.
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
This will give a better user experience on mainstream platforms. On other platforms, you might be able to use a webbrowser. Though most likely if you’re on an obscure/unusual/embedded OS where none of the above work, chances are webbrowser will fail too.
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