os.system 和 webbrowser 之间的区别

Difference between os.system and webbrowser

这里有两种使用 python 在浏览器上打开新 url 的方法。

第一种方式是webbrowser模块。

webbrowser.open(url)

另一种方式是os.system(command).

command = "open -a Google\ Chrome url"
os.system(command)

那么以上几种方式有什么区别呢?哪个更快?

我的电脑 os 是 macos

webbrowser.open() 是一个方便的工具,在代码中不言自明,所以我会使用它。它会尽力为您施展所有魔法。
它需要多快?您是否发现自己同时打开数百个网址?

os.system() 是一个 "low-level" 命令,除非你需要超出 webbrowser 所能做的能力,否则更容易出错。 除非命令 forks/returns 立即执行(就像大多数浏览器会做的那样),否则它也会等待并挂起您的脚本,直到命令终止。

此外,它还需要命令 (open) 在您的 PATH 上(因此更喜欢绝对路径,例如 /usr/bin/open)并且可能并不总是您想要的,取决于脚本执行的位置。例如 open 链接到 openvt 对我来说,所以对我不起作用。 (我需要 xdg-open。)

所以webbrowser.open()会更便携。