news 2026/7/5 2:04:50

Python新手入门第十篇:批量文件处理教程(数据集重命名、改后缀、筛选文件,适配YOLO)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python新手入门第十篇:批量文件处理教程(数据集重命名、改后缀、筛选文件,适配YOLO)

前言

上一篇我们学会了Python单个文件的读写、保存日志、CSV表格操作,掌握了基础的数据存储能力。但在实际编程、自动化办公、深度学习YOLO项目中,单个文件操作完全不够用

我们做目标检测数据集时,经常遇到几百上千张图片、标签文件,需要统一改名、改文件后缀、筛选指定格式文件、清理无效文件,手动操作耗时还容易出错。

本篇手把手教大家掌握Python批量文件处理,全部是零基础可跑的代码,专门适配YOLO数据集预处理场景,学会后彻底告别手动整理数据,大幅提升项目效率。

一、核心模块介绍(无需额外安装)

批量处理文件全程使用Python内置模块,无需pip安装,开箱即用:

  • os模块:遍历文件夹、获取文件列表、修改文件名、判断文件类型

  • 字符串语法:替换后缀、截取文件名、统一命名格式

所有代码兼容Windows系统,适配图片、txt标签、xml标签等YOLO常用文件格式。

二、基础操作1:遍历文件夹所有文件

这是批量处理的基础,先学会读取文件夹中所有文件名称,后续所有批量操作都基于此实现。

import os # 目标文件夹路径(可替换成自己的数据集路径) file_path = "./images" # 遍历文件夹内所有文件 file_list = os.listdir(file_path) # 打印所有文件名 for file in file_list: print("当前文件:", file)

运行效果:自动读取文件夹下所有图片、标签文件,不会遗漏任何文件,是数据集批量操作的核心基础。

三、基础操作2:批量筛选指定格式文件

YOLO数据集只需要jpg、png、txt、xml格式文件,需要过滤掉文件夹、缓存文件、无效文件,精准筛选目标文件。

import os file_path = "./images" # 定义需要保留的文件格式 suffix_list = [".jpg", ".png", ".txt", ".xml"] for file in os.listdir(file_path): # 获取文件后缀 file_suffix = os.path.splitext(file)[-1] # 筛选指定格式文件 if file_suffix in suffix_list: print("有效数据集文件:", file)

场景用途:清理数据集冗余文件,只保留训练所需素材,避免无效文件干扰数据集标注和训练。

四、实战1:批量统一重命名(YOLO数据集必备)

新手制作数据集时,图片文件名杂乱无章,包含中文、特殊符号、乱序编号,会导致YOLO训练报错。通过代码可批量统一命名,格式规范、有序。

import os path = "./images" # 自定义文件前缀,可根据项目修改 prefix = "hydrogen_detect" # 遍历并重命名 for index, file in enumerate(os.listdir(path)): # 获取旧文件完整路径 old_path = os.path.join(path, file) # 跳过文件夹,只处理文件 if os.path.isdir(old_path): continue # 获取文件后缀,保留原格式 suffix = os.path.splitext(file)[-1] # 定义新文件名:前缀+有序编号+后缀 new_name = f"{prefix}_{index}{suffix}" new_path = os.path.join(path, new_name) # 执行重命名 os.rename(old_path, new_path) print(f"重命名成功:{file} → {new_name}")

重命名后效果:hydrogen_detect_0.jpg、hydrogen_detect_1.jpg,完全适配YOLO数据集命名规范,杜绝命名报错。

五、实战2:批量修改文件后缀

数据集常见问题:图片格式混杂jpg、png,标签格式不统一,可通过代码批量统一后缀,规整数据集格式。

示例:批量将png图片转为jpg格式

import os path = "./images" for file in os.listdir(path): old_path = os.path.join(path, file) if os.path.isdir(old_path): continue # 批量替换png为jpg if file.endswith(".png"): new_name = file.replace(".png", ".jpg") new_path = os.path.join(path, new_name) os.rename(old_path, new_path) print(f"格式转换:{file} → {new_name}")

拓展:可自行修改后缀参数,实现txt转xml、jpeg转jpg等各类格式批量转换。

六、实战3:批量删除指定后缀文件

数据集整理时,需要批量删除缓存文件、多余的txt、xml文件,手动删除效率极低,代码一键清理更高效。

import os path = "./images" for file in os.listdir(path): file_path = os.path.join(path, file) # 批量删除 .txt 文件 if file.endswith(".txt"): os.remove(file_path) print("已删除无效文件:", file)

⚠️ 新手注意:删除前建议备份文件,避免误删有效数据集。

七、实战4:批量统计数据集数量

训练YOLO前,需要统计图片、标签总数,判断数据集体量是否充足,简单代码一键统计:

import os path = "./images" img_count = 0 for file in os.listdir(path): if file.endswith((".jpg", ".png")): img_count += 1 print(f"数据集图片总数量:{img_count} 张")

八、新手批量操作避坑指南

  • 路径问题:尽量使用相对路径,文件夹名称不要包含中文、空格、特殊符号

  • 备份优先:重命名、删除、改后缀前,务必备份数据集,防止数据丢失

  • 区分文件与文件夹:操作时需跳过子文件夹,避免程序报错

  • 统一格式:数据集务必统一图片后缀、命名格式,可大幅减少YOLO训练报错

九、总结

本篇核心收获,掌握4个刚需批量操作技能:

  • 遍历文件夹、筛选指定格式文件,精准梳理数据集

  • 批量统一文件命名,解决YOLO命名报错问题

  • 批量修改文件后缀,规整数据集格式

  • 批量清理、统计文件,高效完成数据集预处理

到这一篇,你已经具备了完整的Python数据处理能力:基础语法、文件读写、批量数据预处理,完全满足YOLO目标检测项目的前期数据准备需求。

下一篇将更新第十一篇:YOLO数据集制作全程详解(标注、划分训练集验证集、生成标签文件),正式衔接深度学习实战!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 2:03:31

小程序开发怎么做才对?微信生态正确路径全解析

快讯:随着微信生态的持续成熟与商业闭环的日益完善,微信小程序已从单纯的流量入口演变为企业数字化转型的核心基础设施。截至2026年中,微信小程序日活跃用户规模已突破8亿大关,覆盖零售、医疗、教育、政务等200余个细分行业。然而…

作者头像 李华
网站建设 2026/7/5 2:03:10

网页自动化实战指南:从零构建高效工作流

1. 先搞清楚它到底能替你“干”什么活看到“不是用来上网的浏览器”这个标题,很多人第一反应可能是“又一个营销概念”。但如果你真的被各种重复性、跨平台、需要手动点击和填写的任务困扰过,比如每天要登录十几个后台查数据、在不同网站间搬运信息、定时…

作者头像 李华
网站建设 2026/7/5 2:02:41

基于springboot+vue的在线问卷调查管理系统 基于ssm的鲜花销售系统 基于ssm的外卖点餐订餐管理系统 基于springboot的个人博客系统 基于SSM的房屋租赁管理系统

基于springbootvue的在线问卷调查管理系统 基于ssm的鲜花销售系统 基于ssm的外卖点餐订餐管理系统 基于springboot的个人博客系统 基于SSM的房屋租赁管理系统 项目合集 提取码: 32y6 更多资料汇总 提取码: dk3h

作者头像 李华
网站建设 2026/7/5 2:01:50

Cubemx+stm32f103c8t6-板间无线通信蓝牙篇

本文与双轴摇杆篇共用一个工程,传输的数据是摇杆xy轴的两个四位ADC采样值 Cubemxstm32f103c8t6-双轴摇杆篇 所用蓝牙模块为HC-05,开始前需配置好主从机,模块配置具体内容可以看下文。 HC-05蓝牙模块学习笔记 一、cubemax配置 1、主机 2、从机…

作者头像 李华
网站建设 2026/7/5 1:59:08

AIGC 内容指纹:生成内容入库前先做可追踪设计

AIGC 内容指纹:生成内容入库前先做可追踪设计 一、生成内容不能只有正文 AIGC 系统把文本、图片或摘要生成出来后,很多团队只保存最终内容。短期看够用,长期看很难治理。内容是谁生成的、基于什么提示词、用了哪个模型、有没有人工编辑、是否…

作者头像 李华