未知对方文件路径时,如何用PIL打开他人电脑中的图片?
解决PIL图片路径跨设备问题的实用方法
和程序打包在一起
把图片放到和你的Python脚本同一个文件夹(或脚本下的子文件夹),用相对路径调用,不用写绝对路径。比如:- 图片和脚本同目录时:
from PIL import Image img = Image.open("logo.png") - 图片在脚本的
assets/img子目录时:img = Image.open("assets/img/logo.png")
把整个文件夹发给别人,对方直接运行脚本就能加载图片。如果要打包成可执行文件(比如用PyInstaller),记得配置打包参数把图片一起打包进去。
- 图片和脚本同目录时:
让用户手动选择图片
用文件选择对话框让用户自己选图片,完全不用关心路径。如果你的程序用tkinter做界面,示例代码如下:
from PIL import Image import tkinter as tk from tkinter import filedialog # 隐藏tkinter主窗口 root = tk.Tk() root.withdraw() # 弹出文件选择框,限定图片格式 file_path = filedialog.askopenfilename(filetypes=[("图片文件", "*.png;*.jpg;*.jpeg")]) if file_path: img = Image.open(file_path) # 这里写你的图片处理逻辑
- 让用户输入路径
适合控制台程序,直接让用户输入图片路径,加个异常处理避免报错:
from PIL import Image file_path = input("请输入图片文件的路径:") try: img = Image.open(file_path) # 后续图片操作 except FileNotFoundError: print("找不到指定文件,请检查路径是否正确!")
内容的提问来源于stack exchange,提问作者Bobo_1803
相关产品推荐
相关产品推荐

