打电话给操作系统打开url?

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

以下是如何使用给定的url打开用户的默认浏览器:

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

这里是关于这个function的文档。 它是Python stdlib的一部分:

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

我已经在Linux,Ubuntu 10.10上成功testing过了。

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

对于特定的浏览器来说,这是一个复杂的嗅探,如果他们安装了多个浏览器,将不会find用户的默认浏览器,并且如果它不知道浏览器的名称(例如Chrome),将不会find浏览器。

在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 

这将在主stream平台上提供更好的用户体验。 也许你可以在其他平台上回到webbrowser 。 虽然最有可能的,如果你在一个模糊/不寻常的/embedded式的操作系统上面没有任何工作, webbrowser机会也将失败。

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

 webbrowser.open(url) 

那么如何混合@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) 

看看网页浏览器模块 。