我想用Python在默认浏览器中打开一个图像。我觉得它可能很简单
webbrowser.open(path_to_file)
,但至少在XP上会打开Windows图片和传真查看器。
答案 0 :(得分:4)
嗯,它应该很简单(在我看来),但问题在于webbrowser模块如何在Windows上设置默认浏览器。因此,当您输入
时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")
答案 1 :(得分:0)
对于当前信息,这是一个稍微难以回答的问题。如果您可以澄清您正在使用的浏览器以及您尝试显示的图像格式,将会很有帮助。
如果没有这些信息,我可以提供以下信息:
这里我假设您将使用Firefox浏览器和jpg图像。
import os
os.system('"C:\\Program Files\\ Mozilla Firefox\\Firefox.exe" "path_to_file.jpg"')
这适用于我的WinXP系统。
现在解释一下代码。 python中的os
模块有一些漂亮的OperatingSystem工具。 os.system
将输入字符串作为命令执行,就像您尝试从cmd执行此操作一样。
Firefox可能不是路径变量的一部分,因此可能需要从它所在的位置明确调用。这就是我有“C:\\ Progam Files ......”的原因。
你会注意到我在os.system
的输入参数中有两组双引号这是因为firefox和你的jpg的路径可能有空格,Windows命令行对此很挑剔。
另外,您可能会注意到双引号中有双反斜杠。这是因为在Python中,反斜杠是一个转义字符,用于为后面的字符赋予特殊含义(例如“\ t”是制表符等)。因此,为了得到一个实际的反斜杠,我们需要逃避反斜杠的逃逸性质并做“\\”。
答案 2 :(得分:0)
看起来Windows的特定安装设置为将该查看器程序用作“默认浏览器”(至少具有该内容类型的信息)。要检查,在Windows cmd.exe
提示符下键入start path_to_file
时会发生什么?
如果这确认这确实是安装的选择,那么如果你想用其他程序打开那个文件那么你就不能同时想要使用默认浏览器进行安装(因为那个查看器,你显然不想打开, 设置为该文件的默认浏览器 - 所以你必须要打开一些其他浏览器而不是默认浏览器!)
如果情况确实如此,我建议尝试使用webbrowser.get为具有给定名称的浏览器获取控制器(例如,尝试c = webbrowser.get('windows-default')
- 或者如果可能的话,重现您不想要的行为,请尝试get('firefox')
,然后c.open(path_to_file)
打开相关文件。
答案 3 :(得分:0)
你也可以使用硒
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")