用Python代码在浏览器中打开图片?

3 投票
4 回答
13015 浏览
提问于 2025-04-16 04:19

我想用Python在默认浏览器中打开一张图片。我原以为可以简单地用 webbrowser.open(path_to_file) 这个命令来实现,但在XP系统上,这个命令却打开了Windows图片和传真查看器,而不是浏览器。

4 个回答

0

这个问题有点难回答,因为信息不太够。如果你能告诉我你用的是哪个浏览器,以及你想显示的图片格式,那就更好了。

没有这些信息,我可以提供以下内容:

在这里,我假设你使用的是Firefox浏览器,并且是jpg格式的图片。

import os
os.system('"C:\\Program Files\\ Mozilla Firefox\\Firefox.exe" "path_to_file.jpg"')

这个在我的WinXP系统上可以正常工作。

现在来解释一下代码。Python中的os模块有一些很方便的操作系统工具。os.system可以执行输入的字符串,就像你在命令提示符下输入命令一样。

Firefox可能不在系统的路径变量中,所以可能需要从它所在的具体位置来调用。这就是我在代码中写“C:\\Program Files...”的原因。

你会注意到我在os.system的输入参数中有两组双引号。这是因为Firefox的路径和你的jpg文件的路径中可能有空格,而Windows的命令行对这个很敏感。

另外,你可能会看到双引号中的双反斜杠。这是因为在Python中,反斜杠是一个转义字符,用来给后面的字符赋予特殊意义(比如“\t”表示制表符等)。所以为了得到一个实际的反斜杠,我们需要用两个反斜杠“\\”来表示。

1

你也可以使用selenium这个工具。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(r'path\chromedriver.exe')
driver.get(r"img_path\1.png")
4

我觉得这应该很简单,但问题出在Windows上webbrowser模块如何设置默认浏览器。因为这个原因,当你输入

webbrowser.open(path_to_file)

实际上调用的是

os.startfile(url)

这个对于网址是没问题的,但如果是文件的话,它会使用Windows自带的图片和传真查看器,除非你把其他程序和这个图片文件类型关联起来。简单来说,如果你用webbrowser.get()命令来获取一个真正的浏览器,那就没问题。下面是一个在Windows上用Internet Explorer的方法(在webbrowser模块中,它被设置为最难获取的浏览器):

import os,webbrowser
iexplore = os.path.join(os.environ.get("PROGRAMFILES", "C:\\Program Files"),
                        "Internet Explorer\\IEXPLORE.EXE")
browser = webbrowser.get(iexplore)
browser.open(path_to_file)

而像Firefox这样的浏览器就容易多了:

browser = webbrowser.get("firefox")

撰写回答