移动验证集中的图片

函数不懂的参考:imagenet数据格式以及python文件处理的一些函数

import glob
import os
from shutil import move
from os import rmdir
target_folder = './imagenet/tiny-imagenet-200/val/'
val_dict = {}
#打开验证集的注释文件,这个文件的每一行数据是
# val_0.JPEG	n03444034	0	32	44	62
# 对于每一行数据来说,第一个是图片名,第二个是用这个名称作为这个图片的文件夹名,
# 以前两个名字作为键值对做成一个字典,val_0.JPEG:n03444034,n03444034是这张图片所属的类别
with open('./imagenet/tiny-imagenet-200/val/val_annotations.txt', 'r') as f:
    for line in f.readlines():
        split_line = line.split('\t')
        val_dict[split_line[0]] = split_line[1]
print(val_dict)
# print(val_dict.keys())
paths = glob.glob(r'D:/jiaoyidi/swin_transformer/imagenet/tiny-imagenet-200/val/images/*')
# 这个paths是将验证集中的所有图片的地址做成一个列表放在paths中
# print(paths)
# ['D:/jiaoyidi/swin_transformer/imagenet/tiny-imagenet-200/val/n01443537/images\\val_9506.JPEG',
# 'D:/jiaoyidi/swin_transformer/imagenet/tiny-imagenet-200/val/n01443537/images\\val_9560.JPEG',
# 'D:/jiaoyidi/swin_transformer/imagenet/tiny-imagenet-200/val/n01443537/images\\val_9949.JPEG']
for path in paths:
    file = path.split('\\')[-1]
    print(file)#val_9506.JPEG
    folder = val_dict[file]
    print(folder)#n01443537
    # target_folder = './imagenet/tiny-imagenet-200/val/'
    if not os.path.exists(target_folder + str(folder)):
        os.mkdir(target_folder + str(folder))
        os.mkdir(target_folder + str(folder) + '/images')
for path in paths:
    file = path.split('\\')[-1]
    folder = val_dict[file]
    dest = target_folder + str(folder) + '/images/' + str(file)
    move(path, dest)
# 删除images这个目录,实际上经过上面的移动过程,images这个文件夹中已经没有图片了,都被上一行的move移动完了
rmdir('./imagenet/tiny-imagenet-200/val/images')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饿了就干饭

你的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值