在做深度学习相关项目时,需要标注图片,筛选过后图片名字带有括号,显得比较乱,因此利用python进行统一规范重命名操作 实现方法是利用python的os模块对文件夹进行遍历(listdir),然后使用rename进行改名操作 代码如下 # -*- coding:utf8 -*- import os class BatchRename(): ''' 批量重命名文件夹中的图片文件 ''' def __init__(self): self.path = 'C:/Users/lenovo/Desktop/label5/3' def rename(self): filelist = o 在Python编程中,有时我们需要对文件或文件夹进行批量操作,比如在深度学习项目中,为了保持数据集的整洁和规范,我们可能需要对图片进行重命名。本篇将介绍如何使用Python的os模块来遍历文件夹并重命名其中的图片文件。 我们要导入必要的库,这里只需要`os`模块,它提供了与操作系统交互的各种功能,包括文件和目录的管理。代码如下: ```python import os ``` 接下来,定义一个名为`BatchRename`的类,该类的主要任务是对指定文件夹中的图片进行重命名。在类的初始化方法`__init__`中,设置文件夹路径,例如: ```python class BatchRename(): def __init__(self): self.path = 'C:/Users/lenovo/Desktop/label5/3' ``` 为了实现文件的重命名,我们定义一个`rename`方法。使用`os.listdir()`函数获取文件夹中的所有文件名,存储在`filelist`列表中。接着,遍历这个列表,检查每个文件是否为图片(如.jpg或.png)。如果满足条件,使用`os.path.join()`组合绝对路径,并使用`os.rename()`进行重命名操作。例如: ```python def rename(self): filelist = os.listdir(self.path) total_num = len(filelist) i = 1 for item in filelist: if item.endswith('.jpg') or item.endswith('.png'): src = os.path.join(os.path.abspath(self.path), item) dst = os.path.join(os.path.abspath(self.path), '02' + str(i) + '.' + item.split('.')[-1]) try: os.rename(src, dst) print('Renaming {} to {}...'.format(src, dst)) i += 1 except Exception as e: print('Error renaming {}: {}'.format(src, e)) ``` 在这个例子中,我们假设新的文件名格式为`02`加序号,然后加上原始文件的扩展名。如果遇到非图片文件,代码会跳过。`os.rename()`函数会将源文件移动到新位置,相当于重命名。需要注意的是,如果目标文件已存在,`os.rename()`将会覆盖原有文件,因此在实际应用中,可能需要添加额外的逻辑来避免这种情况。 此外,为了简化代码,可以使用一个简洁版的实现,如下所示: ```python path = 'SegmentationClassRaw/' filelist = os.listdir(path) for item in filelist: if item.endswith('.png'): base_name, ext = os.path.splitext(item) new_name = base_name + ext src = os.path.join(os.path.abspath(path), item) dst = os.path.join(os.path.abspath(path), new_name) try: os.rename(src, dst) print('Renaming {} to {}...'.format(src, dst)) except Exception as e: print('Error renaming {}: {}'.format(src, e)) ``` 这段代码首先检查文件是否为.png,然后使用`os.path.splitext()`分离文件名和扩展名,创建新的文件名,最后进行重命名操作。 总结起来,Python的os模块提供了一系列用于文件和目录操作的函数,如`listdir()`用于列出目录中的文件,`rename()`用于重命名文件。通过这些函数,我们可以方便地编写脚本来批量处理文件,例如遍历文件夹并重命名图片文件,这在处理大量数据时非常有用。在实际应用中,还可以根据具体需求进行调整,例如增加日志记录、异常处理等增强功能。
















- 粉丝: 45
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 最近学完算法,这篇总结送给大家.doc
- 数据库设计时容易忽视的三大细节.doc
- 页面跳转闪屏问题的解决方法.doc
- React项目打包后白屏的解决方案.doc
- 互联网+时代零售行业战略转型研究(1).docx
- 使用浏览器插件辅助前端开发的建议.doc
- 使用Postman调接口踩坑经历.doc
- 通信联络系统管理制度汇编(1).doc
- 写了一个天气查询小工具,分享代码结构.doc
- 数据库主键设置的一点实际经验.doc
- 用正则处理复杂字符串的实用案例.doc
- WebSocket连接掉线了怎么办?.doc
- 人事档案管理信息化建设的必要性与建设策略分析(1).docx
- 电子商务平台开发协议(标准版)(1).docx
- 基于jsp学生信息管理系统的设计与实现(1).doc
- 用MyBatis实现多表联查,过程不算顺利.doc


