全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python图像处理项目中批量文件处理的操作步骤【教程】

批量处理图像需用pathlib递归扫描常见格式文件,配合PIL安全缩放并保存至独立输出目录,加try-except防中断、tqdm显进度、multiprocessing提效,确保源数据不被覆盖。

批量处理图像文件在Python项目中很常见,比如统一调整尺寸、批量转格式、加水印或提取特征。核心是用好osglobpathlib遍历文件,再配合PIL(Pillow)或OpenCV做具体操作。关键不是写死单个路径,而是构建可复用的路径扫描+任务执行流程。

准备环境与基础依赖

确保已安装必要库:

  • pip install pillow(推荐用于常规图像读写、缩放、格式转换)
  • 如需处理视频帧或高级计算机视觉任务,再加pip install opencv-python
  • pathlib更现代简洁(Python 3.4+ 内置,无需额外安装)

安全地批量读取指定类型图像文件

别用os.listdir()硬过滤,容易漏掉子目录或误读隐藏文件。推荐用pathlib.Path递归匹配:

from pathlib import Path

img_dir = Path("input_images")

支持通配符,自动忽略大小写(如 .JPG 和 .jpg 都命中)

image_paths = list(img_dir.rglob(".[jJ][pP][gG]")) + \ list(img_dir.rglob(".[pP][nN][gG]")) + \ list(img_dir.rglob("*.[tT][iI][fF]"))

或更简洁地用 casefold 处理后缀

image_paths = [p for p in img_dir.rglob(".") if p.suffix.casefold() in {".jpg", ".jpeg", ".png", ".tiff", ".bmp"}]

这样能覆盖常见格式,也便于后续扩展。

逐个处理并保存到新目录(不覆盖原图)

批量操作务必避免覆盖原始数据。建议按“输入→处理→输出”分离路径,并自动创建目标文件夹:

from PIL import Image

output_dir = Path("resized_images") output_dir.mkdir(exist_ok=True) # 确保输出目录存在

for img_path in image_paths: try: with Image.open(img_path) as im:

示例:等比缩放到最大边为800像素

        im.thumbnail((800, 800), Image.Resampling.LANCZOS)
        # 保存时保持原格式,输出名不变,仅改路径
        save_path = output_dir / img_path.name
        # PNG保留透明通道,JPG转RGB避免报错
        if save_path.suffix.lower() == ".png":
            im.save(save_path)
        else:
            if im.mode in ("RGBA", "LA", "P"):
                im = im.convert("RGB")
            im.save(save_path, quality=95)
except Exception as e:
    print(f"跳过 {img_path.name}:{e}")

try...except防止某张图损坏导致整个流程中断。

进阶技巧:加进度提示与并行加速

处理几百张以上图片时,加进度条提升体验;CPU密集型任务(如滤镜、重采样)可用multiprocessing提速:

  • tqdm显示进度:pip install tqdm,然后在循环前加for img_path in tqdm(image_paths, desc="处理中"):
  • 并行处理示例(适合多核CPU):from multiprocessing import Pool,把单图处理逻辑封装成函数,再用pool.map(process_one_image, image_paths)
  • 注意:PIL图像对象不能直接跨进程传递,建议只传文件路径,每个子进程自己打开和保存

基本上就这些。核心是路径管理清晰、错误有兜底、输出不污染源数据。实际项目中再根据需求叠加旋转、裁剪、批量重命名或写入EXIF等操作即可。


# python  # 计算机  # ai 


相关文章: 如何用免费手机建站系统零基础打造专业网站?  网站制作员失业,怎样查看自己网站的注册者?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  如何通过建站之星自助学习解决操作问题?  Bpmn 2.0的XML文件怎么画流程图  如何注册花生壳免费域名并搭建个人网站?  如何选择适合PHP云建站的开源框架?  怎么将XML数据可视化 D3.js加载XML  宝塔建站助手安装配置与建站模板使用全流程解析  微信小程序制作网站有哪些,微信小程序需要做网站吗?  建站主机服务器选型指南与性能优化方案解析  如何通过远程VPS快速搭建个人网站?  广州建站公司哪家好?十大优质服务商推荐  如何规划企业建站流程的关键步骤?  在线教育网站制作平台,山西立德教育官网?  如何在宝塔面板中创建新站点?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  建站为何优先选择香港服务器?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  C#如何在一个XML文件中查找并替换文本内容  如何通过免费商城建站系统源码自定义网站主题与功能?  如何在VPS电脑上快速搭建网站?  如何通过NAT技术实现内网高效建站?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  建站之星如何保障用户数据免受黑客入侵?  如何正确选择百度移动适配建站域名?  ,巨量百应是干嘛的?  如何在云主机上快速搭建网站?  网站制作难吗安全吗,做一个网站需要多久时间?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  重庆市网站制作公司,重庆招聘网站哪个好?  如何在阿里云服务器自主搭建网站?  专业公司网站制作公司,用什么语言做企业网站比较好?  建站主机选虚拟主机还是云服务器更好?  建站之星安装失败:服务器环境不兼容?  南宁网站建设制作定制,南宁网站建设可以定制吗?  如何在建站主机中优化服务器配置?  如何在IIS管理器中快速创建并配置网站?  建站之星代理商如何保障技术支持与售后服务?  外贸公司网站制作哪家好,maersk船公司官网?  网站制作新手教程,新手建设一个网站需要注意些什么?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  建站主机SSH密钥生成步骤及常见问题解答?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  网站制作话术技巧,网站推广做的好怎么话术?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。