我可以使用什么来调用操作系统以在用户默认使用的任何浏览器中打开URL?不担心跨操作系统的兼容性;如果它可以在linux上运行,那对我来说就足够了!
Answers:
以下是使用给定URL打开用户默认浏览器的方法:
import webbrowser
webbrowser.open(url[, new=0[, autoraise=True]])
这是有关此功能的文档。它是Python stdlibs的一部分:
http://docs.python.org/library/webbrowser.html
我已经在Linux Ubuntu 10.10上成功测试了此功能。
import antigravity
使用的是:hg.python.org/cpython/file/tip/Lib/antigravity.py
就我个人而言,我真的不会使用webbrowser
模块。
对于特定的浏览器来说,这是一个复杂的嗅探,如果安装了多个浏览器,则将找不到用户的默认浏览器;如果不知道其名称,则将找不到该浏览器(例如,Chrome)。
在Windows上,更好的方法是仅使用该os.startfile
功能,该功能也可用于URL。在OS X上,可以使用open
system命令。在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
失败的也会很大。
xdg-open
仍xdg-open
使用类似的嗅探,但它可能可以使用补丁来使用)。例如,win32实现os.startfile()
已经使用过,并且还具有备用功能。
xdg-open
现在也使用。因此,这个答案在现代python上已经过时了,没有理由不使用webbrowser模块。
您可以使用webbrowser模块。
webbrowser.open(url)