调用操作系统打开网址?
我可以用什么方法来让操作系统打开用户默认的浏览器,并访问一个网址呢?我不太在意跨操作系统的兼容性;只要在Linux上能用就行!
5 个回答
8
你可以使用 webbrowser 这个模块。
webbrowser.open(url)
45
个人来说,我真的不建议使用webbrowser
模块。
这个模块很复杂,它试图去识别特定的浏览器。如果用户安装了多个浏览器,它可能找不到用户的默认浏览器;如果浏览器的名字不被识别(比如Chrome),它也找不到。
在Windows上,直接使用os.startfile
函数会更好,这个函数也可以用来打开网址。在Mac上,可以使用open
这个系统命令。在Linux上,有一个叫xdg-open
的命令,这是一个由freedesktop.org标准支持的命令,适用于GNOME、KDE和XFCE等桌面环境。
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
也很可能会失败。
163
下面是如何用一个给定的网址打开用户默认浏览器的方法:
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上成功测试过这个方法。