You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Python图片处理代码时出现FileNotFoundError如何解决?

问题原因与解决方法

核心问题

  1. 文件路径缺失:os.listdir("images")仅返回images目录下的纯文件名(比如20220904_EnduroDuLynx_Haulot_0768.jpg),但Image.open(file)会在当前脚本的工作目录下查找文件,而非images目录,自然找不到目标文件。
  2. 保存路径拼接错误:"images-recadre" + file会生成类似images-recadre20220904_EnduroDuLynx_Haulot_0768.jpg的错误路径,实际需要将文件保存到images-recadre目录下,必须用路径分隔符正确拼接。
  3. 目标目录未提前创建:如果images-recadre目录不存在,保存操作会直接抛出目录不存在的错误。

修正后的代码

from PIL import Image
import os

width = 200
height = 300

# 定义源目录和目标目录
source_dir = "images"
target_dir = "images-recadre"

# 确保目标目录存在,不存在则自动创建
os.makedirs(target_dir, exist_ok=True)

for file in os.listdir(source_dir):
    # 拼接完整的源文件路径
    source_path = os.path.join(source_dir, file)
    # 跳过目录(避免images目录下有子目录时出错)
    if not os.path.isfile(source_path):
        continue
    # 打开并调整图片尺寸
    image = Image.open(source_path)
    resized_image = image.resize((width, height))
    # 拼接完整的目标文件路径
    target_path = os.path.join(target_dir, file)
    # 保存调整后的图片
    resized_image.save(target_path)

关键修改点说明

  • 用os.path.join()拼接路径:自动适配不同操作系统的路径分隔符(Windows用\,Linux/macOS用/),避免手动拼接出错。
  • 提前创建目标目录:os.makedirs(target_dir, exist_ok=True)会自动创建目录,若目录已存在则不报错。
  • 过滤非文件项:增加os.path.isfile(source_path)判断,避免遍历到images目录下的子目录时触发错误。

内容的提问来源于stack exchange,提问作者Arthus Haulot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 08:15:43