Python批量重命名文件

做数据集的时候经常需要把文件捣鼓来捣鼓去,还是决定留个批量重命名的小demo

代码如下:

import os


def rename_batch(txt_path, img_path):
    """
    此方法会对输入目录下的文件进行重命名批处理
    如果日后需要源数据,使用前最好先对源数据进行备份,
    :param txt_path: 输入txt文件的上级目录
    :param img_path: 输入图片的上级目录
    :return: None
    """
    # 获取绝对路径下文件列表 这里以txt和jpg格式文件为例
    txt_name = os.listdir(txt_path)
    img_name = os.listdir(img_path)
    tag = 1
    # 遍历每个txt
    for txt in txt_name:
        t = txt.split('.', -1)  # 将txt文件名 例如 'temp.txt' 分段存储 t=['temp','txt']
        name_new = 'fire_val_' + str(tag)  # 要改成什么名字,不包括后缀
        # 在图片中找到同名文件
        for img in img_name:
            if img.split('.', -1)[0] == t[0]:
                old_img_name = img_path + os.sep + img  # os.sep为系统分隔符
                new_img_name = img_path + os.sep + name_new + '.jpg'
                os.rename(old_img_name, new_img_name)
                print(str(img)+'------->'+str(name_new)+'.jpg')
        old_txt_name = txt_path + os.sep + txt
        new_txt_name = txt_path + os.sep + name_new + '.txt'
        os.rename(old_txt_name, new_txt_name)
        print(str(txt)+'------->'+str(name_new)+'.txt')
        print()
        tag += 1

if __name__ == '__main__':
    txt_pth = r"E:\python_workdir\dataset\coco\labels\val2017"
    img_path = r"E:\python_workdir\dataset\coco\images\val2017"
    rename_batch(txt_pth, img_path)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值