gpt4 book ai didi

Python:chrome.exe 的通用 webbrowser.get().open() 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 07:01:13 24 4
gpt4 key购买 nike

我使用的是 Python 2.7 (Win 8.1 x64),我想在 Chrome 中打开一个 URL。由于 Chrome 仅在 3.3+ 中得到原生支持,因此我尝试了一个通用调用:

import webbrowser
webbrowser.get("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %s").open("http://google.com")

路径是正确的,打印确实给了我一个处理程序:

"<webbrowser.GenericBrowser object at 0x0000000002D26518\>"

但是,open() - 最好是 open_new_tab()) - 函数不起作用。它返回 False。

如果我运行命令

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "https://google.com"

不过,在 Windows 运行对话框中,它确实有效。


如果我将 Chrome 设置为标准浏览器并运行

webbrowser.get().open("http://google.com")

它确实有效,但这不是我想要的。

有人知道出了什么问题吗?

最佳答案

您必须在 webbrowser.get 调用中使用 unix 风格的路径:

webbrowser.get("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s").open("http://google.com")

这是因为 webbrowser 在内部对路径做了一个 shlex.split,它只会删除 Windows 风格的路径分隔符:

>>> cmd = "C:\\Users\\oreild1\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe %s"
>>> shlex.split(cmd)
['C:Usersoreild1AppDataLocalGoogleChromeApplicationchrome.exe', '%s']
>>> cmd = "C:/Users/dan/AppData/Local/Google/Chrome/Application/chrome.exe %
s"
>>> shlex.split(cmd)
['C:/Users/dan/AppData/Local/Google/Chrome/Application/chrome.exe', '%s']
如果给定 posix=False 关键字参数,

shlex 实际上会在这里做正确的事情,但 webbrowser 不会提供,即使在 Windows 上。这可以说是 webbrowser 中的错误。

关于Python:chrome.exe 的通用 webbrowser.get().open() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com