Yolo演算法,在進行模型訓練時,常常使用VOC資料格式,
將圖片檔案復制到JPEGImages目錄下,需要對檔案名進行VOC標準格式編號重命名,如2020_000001.jpg,2020_000002.jpg,這樣便于voc_label.py來進行后續處理,
這個作業如果手作業業,是個體力活,因此使用python腳本來做,可以重復使用,
python腳本如下,檔案名為renamefiles.py,
1 # -*- coding:utf-8 -*- 2 ? 3 # 讀取指定目錄,并將指定后綴的檔案名重命名為yyyy_+6位數字編號的檔案 4 ? 5 import sys,os,string 6 import getopt 7 ? 8 opts, args = getopt.getopt(sys.argv[1:], "hi:p:", ["help","input=","postfix="]) 9 ? 10 def usage(): 11 print(sys.argv[0] + ' -i inputdir -p postfix') 12 print(sys.argv[0] + ' -h #get help info') 13 ? 14 def rename_files(filepath, postfix): 15 #遍歷filepath下所有檔案,忽略子目錄,將檔案重命名 16 #print(filepath) 17 yyyy = '2020' 18 print(postfix) 19 newCounter = 1 20 files = os.listdir(filepath) 21 for fi in files: 22 #將目錄和檔案或子目錄合成一個全路徑 23 fi_d = os.path.join(filepath,fi) 24 if os.path.isdir(fi_d): 25 continue; 26 else: 27 #fs = os.path.join(filepath,fi_d) 28 fs = fi_d 29 #print(fi_d) 30 #取得檔案全路徑 31 32 lstpathext = os.path.splitext(fs) 33 ext = lstpathext[1] 34 if (ext == postfix): 35 #指定型別檔案, 36 newFilename = str(newCounter).zfill(6) 37 #檔案重命名 38 newFilename = yyyy + '_' + newFilename + postfix 39 newPath = os.path.join(filepath,newFilename) 40 os.rename(fs,newPath) 41 # 更新計數 42 newCounter = newCounter + 1 43 ? 44 ? 45 rename_files(sys.argv[1],sys.argv[2]) 46 print('process finished!') 47 sys.exit();
該腳本使用兩個引數,引數1為圖片存盤目錄,引數2為圖片檔案的后綴,要包括“.“,如".jpg",另外,yyyy在代碼中寫死了,為2020,如不同,可以自行修改,
使用方法示例:
python renamefiles.py E:\workspace\darknet\build\darknet\x64\data\voc\VOCdevkit\VOC2020\JPEGImages .jpg
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/2251.html
標籤:其他
上一篇:生成流暢文本方法
