Python webbrowser模块调用Chrome跨设备路径不兼容问题求解
现有代码问题排查
- 缺少
os模块导入,调用os.walk、os.path.join等方法时会直接报错 Program Files (x86)路径拼写错误,缺少路径中间的空格,系统无法识别该路径website变量未提前定义,拼接URL时会抛出变量未找到异常- 使用
os.walk全盘遍历Program Files目录效率极低,且部分受系统保护的目录没有访问权限,会导致遍历中断
可行实现方案
Chrome在Windows下的默认安装路径是固定的子目录,不需要全局遍历,直接判断两个预设的标准路径是否存在即可,执行效率更高也不会触发权限问题。
很快,若使用64位安装包,Google Chrome在Windows系统下将默认安装到C:\Program Files\文件夹。安装在C:\Program Files (x86)\文件夹的64位Chrome版本仍可正常运行和更新。
完整实现代码如下:
import os import webbrowser def get_chrome_path(): # 预设Chrome的两个官方标准安装路径 chrome_paths = [ r"C:\Program Files\Google\Chrome\Application\chrome.exe", r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ] for path in chrome_paths: if os.path.exists(path): return path return None if __name__ == "__main__": target_url = "https://pythonexamples.org" chrome_path = get_chrome_path() if chrome_path: # 找到Chrome则优先用Chrome打开 webbrowser.register('chrome', None, webbrowser.BackgroundBrowser(chrome_path)) webbrowser.get('chrome').open(target_url) else: # 未找到Chrome则降级调用系统默认浏览器打开,保证功能可用 webbrowser.open(target_url)
内容的提问来源于stack exchange,提问作者Hrishi
相关产品推荐
相关产品推荐

