文件重命名

本文介绍如何使用Python脚本批量更改文件夹下的文件名,包括XML、JPG、TXT文件的重命名,并讲解批量替换文件名中特定部分的方法。此外,还涉及了批量处理图片重命名的操作,这些技巧在数据处理,特别是目标检测数据集预处理中十分实用。
摘要由CSDN通过智能技术生成

目录

前言

一、批量更改文件夹下的文件名

二、批量更换文件夹下文件名中某个地方

三、批量给图片重命名

总结


前言

最近在做项目时,需要对数据集进行一系列的处理,包括视频抽帧、对图片的重命名、划分训练集测试集、复制标注文件到别的文件下,图像增强之平移等等,用到了一些脚本,现在整理发布一下。


一、批量更改文件夹下的文件名

可以实现xml、jpg、txt三种格式的批量修改。

"""
rename.py
此脚本用于批量替换更改文件夹下文件名
主要参考了os.path模块 https://www.runoob.com/python3/python3-os-path.html
"""

import os.path

path = r'F:\Python-Code\python脚本\clean'
for root, dirs, files in os.walk(path):  #os.walk() 遍历目录下所有的文件名
    # root是当前正在遍历的这个文件夹本身的路径;dirs是文件夹中所有子文件夹的名字;files是该文件夹下所有的文件的名字(不含子目录)
    i = 0
    j = 0
    k = 0
    for filename in files:
        if filename.split('.')[-1] == 'xml':#split方法对字符串进行分割,[-1]从后向前数第一个
            i += 1
            newName = 'xxx_' + 'xxx_'+str(i).zfill(6)+'.xml'#zfill(x)返回指定长度的字符串,原字符串右对齐,前面填充0
            os.rename(root +'/'+filename,root+'/'+newName) #两个参数一前一后是原文件名,目标文件名
            print("重命名【%s】为【%s】成功"%(filename, newName))

        elif filename.split('.')[-1] == 'jpg':
            i += 1
            newName = '000' + '111'+str(i).zfill(6)+'.jpg'
            os.rename(root + '/' + filename, root + '/' + newName)
            print("重命名【%s】为【%s】成功"%(filename, newName))
        #     000111000001.jpg
        #     000111000002.jpg
        #     也支持中文

        elif filename.split('.')[-1] == 'txt':
            i += 1
            newName = 'xxx_' + 'xxx_'+str(i).zfill(6)+'.txt'
            os.rename(root + '/' + filename, root + '/' + newName)
            print("重命名【%s】为【%s】成功"%(filename, newName))

        else:
            print(None)

"""
笔记:
常用的用于遍历文件夹、文件的语句有
for root, dirs,files in os.walk(path):  #os.walk() 遍历目录下所有的文件名
    for filename in files:

for pathAndFilename in glob.iglob(os.path.join(image_dir, "*.jpg")): #遍历目录下所有的jpg文件
    title, ext = os.path.splitext(os.path.basename(pathAndFilename))

if not os.path.exists(save_path):#新建文件夹
    os.makedirs(save_path)
"""

二、批量更换文件夹下文件名中某个地方

"""
rename1.py
此脚本用于批量替换更改文件夹下文件名中某个地方,
主要参考了os.path模块 https://www.runoob.com/python3/python3-os-path.html
"""


import os

path = r'F:\Python-Code\python脚本\clean'
for root, dirs, files in os.walk(path):
    for filename in files:
        # title, text = os.path.splitext(os.path.basename(filename))#os.path.basename(filename)返回文件名
                                                                  #os.path.splitext()分割路径中的文件名与拓展名
        title, text = os.path.splitext(filename)
        # title = title.replace(" ", "_")
        # title = title.replace(",", "_")
        # title = title.replace(".", "")
        # 第一个是原文件中名字,第二个是更改的
        title = title.replace('是', '111')
        new_filename = os.path.join(root, title + text)
        print(new_filename)
        filename = os.path.join(root, filename)
        os.rename(filename, new_filename)

三、批量给图片重命名

实现方法和一中类似

import os.path

def rename(img_folder,num):
    for img_name in os.listdir(img_folder):  # os.listdir(): 列出路径下所有的文件
        #os.path.join() 拼接文件路径
        src = os.path.join(img_folder, img_name)   #src:要修改的目录名
        # dst = os.path.join(img_folder, img_name.split('t')[0] + 'tCute' + str(num) + '.jpg')  # dst: 修改后的目录名      注意此处str(num)将num转化为字符串,继而拼接

        dst = os.path.join(img_folder, str(num) + '.jpg') #dst: 修改后的目录名      注意此处str(num)将num转化为字符串,继而拼接
        num= num+1
        os.rename(src, dst) #用dst替代src


def main():
    img_folder0 = 'E:\Python-Code\DetectBlur\wqw/saiti4/' #图片的文件夹路径    直接放你的文件夹路径即可
    num=0
    rename(img_folder0,num)

if __name__=="__main__":
    main()


总结

目标检测数据处理所用到的脚本_蒙城小亮的博客-CSDN博客_目标监测 split.py

以上就是今天要讲的内容,本文仅仅简单介绍了更改文件夹的使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值