在做深度学习相关项目时,需要标注图片,筛选过后图片名字带有括号,显得比较乱,因此利用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
- 资源: 932
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 打包和分发Rust工具.pdf
- SQL中的CREATE LOGFILE GROUP 语句.pdf
- C语言-leetcode题解之第172题阶乘后的零.zip
- C语言-leetcode题解之第171题Excel列表序号.zip
- C语言-leetcode题解之第169题多数元素.zip
- ocr-图像识别资源ocr-图像识别资源
- 图像识别:基于Resnet50 + VGG16模型融合的人体细胞癌症分类模型实现-图像识别资源
- C语言-leetcode题解之第168题Excel列表名称.zip
- C语言-leetcode题解之第167题两数之和II-输入有序数组.zip
- C语言-leetcode题解之第166题分数到小数.zip