批量处理图像需用pathlib递归扫描常见格式文件,配合PIL安全缩放并保存至独立输出目录,加try-except防中断、tqdm显进度、multiprocessing提效,确保源数据不被覆盖。
批量处理图像文件在Python项目中很常见,比如统一调整尺寸、批量转格式、加水印或提取特征。核心是用好os、glob或pathlib遍历文件,再配合PIL(Pillow)或OpenCV做具体操作。关键不是写死单个路径,而是构建可复用的路径扫描+任务执行流程。
确保已安装必要库:
pip install pillow(推荐用于常规图像读写、缩放、格式转换)pip install opencv-python
pathlib更现代简洁(Python 3.4+ 内置,无需额外安装)别用os.listdir()硬过滤,容易漏掉子目录或误读隐藏文件。推荐用pathlib.Path递归匹配:
from pathlib import Pathimg_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 Imageoutput_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="处理中"):
from multiprocessing import Pool,把单图处理逻辑封装成函数,再用pool.map(process_one_image, image_paths)
基本上就这些。核心是路径管理清晰、错误有兜底、输出不污染源数据。实际项目中再根据需求叠加旋转、裁剪、批量重命名或写入EXIF等操作即可。
相关文章:
如何用免费手机建站系统零基础打造专业网站?
网站制作员失业,怎样查看自己网站的注册者?
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小时内与您取得联系。