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

如何用Python PIL批量处理多级子文件夹中的图片裁剪?

批量处理子文件夹图片裁剪解决方案

可以通过os.walk()遍历主文件夹下的所有子目录及文件,修改后的代码如下:

from PIL import Image
import os

def crop_images(root_dir):
    # 遍历主文件夹下所有子目录和文件
    for root, dirs, files in os.walk(root_dir):
        for file in files:
            # 筛选常见图片格式,可按需添加更多格式
            if file.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp')):
                fullpath = os.path.join(root, file)
                try:
                    im = Image.open(fullpath)
                    f, e = os.path.splitext(fullpath)
                    # 执行你指定的裁剪操作
                    imCrop = im.crop((80, 270, 4000, 3000))
                    # 保存裁剪后的图片,保留原路径和文件名并添加Cropped后缀
                    imCrop.save(f + 'Cropped.jpg', "JPEG")
                except Exception as e:
                    print(f"处理文件{fullpath}出错: {e}")

if __name__ == "__main__":
    root_path = r"D:\test"
    crop_images(root_path)

关键修改说明:

  • 用os.walk(root_dir)替代原有的os.listdir(path):os.walk会自动递归遍历主文件夹下的所有子文件夹,返回当前目录路径、子文件夹列表、当前目录文件列表,无需手动嵌套循环处理子目录。
  • 新增图片格式筛选:避免误处理非图片文件,确保只针对常见图片格式执行裁剪。
  • 增加异常捕获:防止单个文件处理出错导致程序中断,同时打印错误信息方便排查问题。
  • 优化代码结构:将裁剪逻辑封装为独立函数,入口处调用,代码更清晰易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 01:02:36