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()
会更便携。
这里有两种使用 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()
会更便携。