调用操作系统打开网址?

新手上路,请多包涵

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

原文由 Bolster 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 418
2 个回答

以下是使用给定 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 上成功测试了这个。

原文由 kobrien 发布,翻译遵循 CC BY-SA 4.0 许可协议

就我个人而言,我真的 不会 使用 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 也会失败。

原文由 bobince 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题