使用PIL与os库加载settingsicon.png报错:找不到文件或目录
问题说明
尝试通过PIL库加载settingsicon.png文件,使用./settingsicon.png格式的相对路径时运行失败,报错信息为:
No such file or directory: './settingsicon.png'
尝试用os库处理路径仍未解决,相关代码如下:
import os from PIL import Image import customtkinter # 获取绝对文件路径 file_path = os.path.abspath('path/to/settingsicon.png') # 加载图片 img = Image.open(file_path)
解决方法
核对文件路径匹配关系
先明确脚本文件与settingsicon.png的实际位置:- 若两者在同一文件夹,直接用文件名
settingsicon.png即可; - 若图片在脚本所在文件夹的子目录(比如
icons文件夹),则路径应为./icons/settingsicon.png。
你代码里写的path/to/settingsicon.png是占位符格式,需要替换成实际的相对路径。
- 若两者在同一文件夹,直接用文件名
使用脚本目录拼接绝对路径
用os.path.dirname(__file__)获取当前脚本的所在目录,再拼接图片路径,能避免工作目录差异导致的路径问题,修改后的代码:
import os from PIL import Image import customtkinter # 获取当前脚本的绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接图片的完整路径 file_path = os.path.join(script_dir, 'settingsicon.png') # 加载图片 img = Image.open(file_path)
- 检查运行时的工作目录
脚本运行时的工作目录不一定是脚本所在目录,可在代码开头添加print(os.getcwd())查看当前工作目录,如果和图片所在目录不一致,要么切换工作目录(用os.chdir(script_dir)),要么采用上面的绝对路径拼接方法。
内容的提问来源于stack exchange,提问作者BetrickBZD
相关产品推荐
相关产品推荐

