如何使用Python打开图片并在显示时保留原始文件名?
问题原因
PIL的Image.show()默认会将图片写入临时文件再调用系统查看器打开,因此默认显示的是临时文件的随机文件名,而非原文件名。
解决方案
方案1:直接调用Windows系统默认程序打开(推荐)
Windows系统自带os.startfile()接口,直接传入原文件路径即可调用默认关联的图片查看器打开原文件,天然显示原始文件名,无需依赖PIL的打开逻辑:
import os filepath = 'image.png' # 直接调用系统默认程序打开原文件 os.startfile(filepath)
该方案逻辑最简单,也不会生成额外临时文件,非常适合批量处理场景。
方案2:使用高版本Pillow的title参数
如果你需要保留PIL的show()调用逻辑,可升级Pillow到9.1.0及以上版本,show()方法新增了title参数可以自定义窗口显示的标题,直接传入原文件名即可:
from PIL import Image filepath = 'image.png' img = Image.open(filepath) # 传入title参数指定窗口显示的文件名 img.show(title=filepath)
如果你的Pillow版本较低,先执行升级命令:pip install --upgrade pillow
内容的提问来源于stack exchange,提问作者Brakedown
相关产品推荐
相关产品推荐

