python 将指定路径(目录)下的图片或文本文件按给定序号重新排序,并批量重命名 (yolo、tensorflow数据集批量处理)

文章目录

      • 需求
      • 代码
      • 效果
        • 运行前
        • 运行后

需求

给定目录,能够根据图片已有名称获取图片顺序,并批量重命名。

代码

# -*- encoding: utf-8 -*-
"""
@File    : file_batch_rename.py
@Time    : 2019/11/4 9:01
@Author  : Dontla
@Email   : [email protected]
@Software: PyCharm
"""
import os
import re

files_path = './files/'
files = os.listdir(files_path)
# print(files)

# 第一种排序方法
files.sort(key=len)
# print(files)

# 第二种排序方法:正则表达式(略)
for f in files:
    old_file = os.path.join(files_path, f)
    # print(old_file)

    # 获取下标(找到列表中第一个匹配的)
    # print(files.index(f) + 1)

    # 获取新文件名与文件后缀
    # 如果没对files列表排序的话可别用这句代码,文件名乱了就麻烦了,到时候图片与标注对不上(最保险的还是用正则化表达式)
    new_file_name = files.index(f) + 1
    file_suffix = os.path.splitext(f)[1]
    # print(new_file_suffix)

    new_file = os.path.join(files_path, '{}{}'.format(new_file_name, file_suffix))
    # print(new_file)

    # 将文件重命名
    os.rename(old_file, new_file)

效果

运行前

将带有序号的文件放到程序.py文件当前文件夹的files文件夹中,注意处理深度学习训练集测试集时不同类型文件分开处理(比如.txt文件和.jpg文件分开处理,分两次来,不要全扔到一起处理,会乱序的)
python 将指定路径(目录)下的图片或文本文件按给定序号重新排序,并批量重命名 (yolo、tensorflow数据集批量处理)_第1张图片

运行后

python 将指定路径(目录)下的图片或文本文件按给定序号重新排序,并批量重命名 (yolo、tensorflow数据集批量处理)_第2张图片

参考文章:python 使用sort()函数和正则表达式(lambda)对os.listdir()获取的文件夹文件列表进行重新排序 乱序排序

你可能感兴趣的:(Python)