批量修改文件名python脚本

文章介绍了如何使用Python的os模块编写两个函数,分别对子目录中的图片和txt文件进行重命名,新的文件名格式为子目录名+原文件名。
摘要由CSDN通过智能技术生成

代码结构:

        主目录下有许多子目录,子目录名称遵循1,2,3,4...命名规则,各个子目录中有大量的图片和一个txt文件夹,txt文件夹中包含大量txt文件。以下两份代码可分别实现图片和txt文件名称集体修改,修改规则为:

         新文件名 = 子目录名称 + 旧文件名

修改图片:

import os

def rename_images(root_dir):
    for folder_name in os.listdir(root_dir):
        folder_path = os.path.join(root_dir, folder_name)
        if os.path.isdir(folder_path):
            for i, filename in enumerate(sorted(os.listdir(folder_path))):
                if filename.endswith('.jpg'):
                    old_filepath = os.path.join(folder_path, filename)
                    new_filename = f"{folder_name.zfill(2)}{filename[:-4].zfill(6)}.jpg"
                    new_filepath = os.path.join(folder_path, new_filename)
                    os.rename(old_filepath, new_filepath)
                    print(f"Renamed {old_filepath} to {new_filepath}")

# 调用函数并指定根目录
root_directory = "E:/datasetbf/mydata/valdata"
rename_images(root_directory)

修改txt文件:

import os

def rename_labels(root_dir):
    for folder_name in os.listdir(root_dir):
        folder_path = os.path.join(root_dir, folder_name)
        if os.path.isdir(folder_path):
            txt_folder_path = os.path.join(folder_path, 'txt')  # 指定 txt 文件夹路径
            if os.path.isdir(txt_folder_path):
                for i, filename in enumerate(sorted(os.listdir(txt_folder_path))):
                    if filename.endswith('.txt'):
                        old_label_filepath = os.path.join(txt_folder_path, filename)
                        new_label_filename = f"{folder_name.zfill(2)}{filename[:-4].zfill(6)}.txt"
                        new_label_filepath = os.path.join(txt_folder_path, new_label_filename)
                        os.rename(old_label_filepath, new_label_filepath)
                        print(f"Renamed label {old_label_filepath} to {new_label_filepath}")

# 调用函数并指定根目录
root_directory = "E:/datasetbf/mydata/valdata"
rename_labels(root_directory)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值