调用操作系统打开网址?

我可以使用什么来调用操作系统在用户默认的浏览器中打开 URL? 不用担心跨操作系统的兼容性; 如果它能在 linux 中工作,对我来说就足够了!

80703 次浏览

您可以使用 网页浏览器模块。

webbrowser.open(url)

下面是如何用给定的 URL 打开用户的默认浏览器:

import webbrowser


url = "https://www.google.com/"


webbrowser.open(url, new=0, autoraise=True)

下面是关于这个功能的文档,它是 Python 标准库的一部分:

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

我已经在 Linux,Ubuntu 10.10上成功地测试过了。

个人来说,我真的 不会使用 webbrowser模块。

对于特定的浏览器来说,这是一个复杂的嗅探过程,如果用户安装了多个浏览器,它就不会找到用户的默认浏览器,如果用户不知道浏览器的名称(例如 Chrome) ,它也不会找到用户的默认浏览器。

在 Windows 上更好的方法是使用 os.startfile函数,它也可以在 URL 上工作。在 OS X 上,可以使用 open系统命令。在 Linux 上有 xdg-open,一个由 GNOME、 KDE 和 XFCE 支持的 freedesktop.org 标准命令。

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

这将在主流平台上提供更好的用户体验。也许你可以在其他平台上回到 webbrowser。虽然最有可能的是,如果你在一个不起眼的/不寻常的/嵌入式操作系统上,没有上述工作,机会是 webbrowser也会失败。

那么把“ kobrien”和“ bobince”的代码混合起来怎么样:

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)