Windows+PyCharm环境下PIL读取图片遇FileNotFoundError等问题求助
解决PIL读取图片的路径及文件不存在问题
一、先解决Unicode转义错误
Windows路径里的\在Python字符串中属于转义字符,直接书写会触发unicodeescape解码错误,三种可行的路径写法:
- 原始字符串写法:在路径前加
r,让Python不解析转义字符from PIL import Image # 注意变量名要统一,你之前代码里用fp接收,但调用im.show()是变量名错误 im = Image.open(r"C:\Users\User\Downloads.png") im.show() - 转义反斜杠写法:把每个
\替换为\\,让Python识别为实际的路径分隔符from PIL import Image file_name = "C:\\Users\\User\\Downloads.png" im = Image.open(file_name) # 无需传"r"参数,PIL默认以二进制模式读取文件 im.show() - 正斜杠替代写法:Python支持用
/作为路径分隔符,彻底避开转义问题from PIL import Image file_name = "C:/Users/User/Downloads.png" im = Image.open(file_name) im.show()
二、解决FileNotFoundError(文件不存在)
这是当前核心问题,按以下步骤逐一排查:
- 检查文件名正确性:
Downloads是Windows默认下载文件夹名,而非图片文件名!你大概率是把图片放在Downloads文件夹里,却误写成Downloads.png,正确路径应该类似C:\Users\User\Downloads\你的图片名称.png - 复制真实路径:打开文件资源管理器找到目标图片,右键→属性→复制“安全”选项卡下的完整对象名称,直接粘贴到代码中,避免手动输入路径出错
- 用相对路径测试:把图片放到PyCharm项目目录下,直接写文件名(比如
im = Image.open("test.png")),排除多层路径的权限或拼写问题 - 修正变量名错误:你之前的代码中用
fp = Image.open(...)接收实例,但后续调用im.show(),变量名不匹配会引发新错误,要保证变量名统一
额外注意事项
- 导入PIL时无需写
import PIL,直接from PIL import Image即可满足需求 Image.open()不需要传入第二个参数"r",PIL内部会自动以二进制模式处理图片文件,传参反而可能引发异常
内容的提问来源于stack exchange,提问作者VAN
相关产品推荐
相关产品推荐

