python将几个子文件夹中的文件批量重命名+保存到指定文件夹下

写在前面:本地文件格式如下

python将几个子文件夹中的文件批量重命名+保存到指定文件夹下

Annotation文件夹下有许多子文件夹,子文件夹中是XML文件。

想要把所有文件放到一个labels文件夹中,并进行重命名。

代码如下:

import os
from shutil import copy

path="D:/Research direction/data set/DL data/VOCdevkit DL/VOC2007/Annotations" #原文件夹
out="D:/Research direction/data set/DL data/labels"  #保存的文件夹地址

#获取文件列表
allfilelist=os.listdir(path)  #获取子文件夹名
allfilelist.sort(key=lambda x: int(x[4:]))   #第四个字符以后的字符串转化为数字并进行排序
    # print(allfilelist)
    # print(len(allfilelist))
index = 1
for file in allfilelist:
    filepath = os.path.join(path, file)
    img_names = os.listdir(filepath)  #获取子文件夹中的文件名
    img_names.sort(key=lambda x: int(x[:-4]))  #倒数第五个字符以前的字符串转化为数字并进行排序
    # print(img_names)
    # 打印文件夹下的数量
    # print(len(img_names))
    # 循环读取文件,批操作文件名重命名

    for item in img_names:
            if item.endswith('.xml'):  # 根据自己的文件格式修改
                src_path = os.path.join(os.path.abspath(filepath), item)
                dst_path = os.path.join(os.path.abspath(out), '' + str(index) + '.xml')
                copy(src_path, dst_path)
                index = index + 1

 点击运行即可。

此方法保证了文件顺序不被改变,对于数据集的处理很好用。

参考:基于Python 从一个文件夹读取照片,修改尺寸后重命名存入另一个文件夹_CSDN@zxy的博客-CSDN博客python提升篇(十)---批量读取文件重命名_xyl666666的博客-CSDN博客python 递归获取子文件夹下的文件名 和文件类别标签_GREAT的博客-CSDN博客

上一篇:beta阶段贡献计算


下一篇:pm.inc