移动验证集中的图片
函數不懂的參考: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.JPEGfolder = 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')總結
- 上一篇: imagenet数据格式以及python
- 下一篇: 算法和数据结构