将文件中的图片按照文件名划分成不同文件夹

文章讲述了如何使用Python编程实现文件夹的划分,通过main.py中的函数,将文件夹内的图片根据特定规则分为58类,并在test.py中定义了类别的命名规则。主要涉及os和shutil库的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 效果演示

原始文件夹

在这里插入图片描述

划分后的文件夹

在这里插入图片描述

2 代码实现

main.py

  • 实现划分文件夹的主函数
import os
import shutil
from test import arr_name

path = 'D:\\Postgraduate\\Chinese Traffic Signs_datasets\\Traffic_Signs'
new_path = 'D:\\Postgraduate\\Chinese Traffic Signs_datasets\\Traffic_Signs_Classify1'
filelist = os.listdir(path)
arr = arr_name(58)
for i in range(1, 59):
    os.mkdir((new_path+'\\ts{}').format(i))
j = 0  # 文件名
for item in filelist:  # 从原路径下选取图片
    i = 1
    j = j + 1
    # if item.endswith('5.bmp') or item.endswith('6.bmp') or item.endswith('7.bmp') or item.endswith('8.bmp'):
    for x in arr:  # 把文件分为58类
        if item[0:3] == x:
            src = os.path.join(os.path.abspath(path), item)  #
            dst = os.path.join(os.path.abspath((new_path+'\\ts{}').format(i)), item)  #
            new_name = os.path.join(os.path.abspath((new_path+'\\ts{}').format(i)), ''+str(j)+'.jpg')
            # 复制图像
            shutil.copy(src, dst)
            # 重命名
            os.rename(dst, new_name)
            print(src)   # 输出原图像名
            print(new_name)  # 输出新图像名
        i += 1

test.py

  • 用于区分第10类以后与前10类的命名区别(0xx <–> 0xx
def arr_name(max):
    numes = list()
    for i in range(max):
        if i < 10:
            numes.append('00'+str(i))
        elif 10 <= i < 100:
            numes.append('0' + str(i))
        else:
            numes.append(str(i))
    return numes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值