728x90
반응형

파일명 변경하는 것은 사실 블로그들에 많이 풀려있는 코드이긴 하다.

그러나 나는 computer vision을 위한 Image Custom dataset의 이름명을 통일하고 내가 원하는 방식으로 정렬하기 위한 코드를 짰다.

 

파일명을 변경하는 이유는 

1) image dataset을  web scraping하거나, 다운로드 후 운용하는게 아니라 팀이 직접 찍어서 labeling하기 때문에 파일 명이 각기 다를 수 있다.

 

2) pascal voc dataset 형식을 따르는데 형식에 맞추기 위함이다.

 

3) train_test_split을 하기 위해서는 내가 통제할 수 있는 형식이 필요하다.

 

코드는 아래와 같다.

import os
import glob
import re

path = "./VOC2021/JPEGImages/"      # 파일경로 설정
filename = glob.glob(path + '*.jpg') # 확장자명 설정
print(filename[:10])   # 파일명 확인

for idx, name in enumerate(filename) : 
    print(idx, ":", name[-10:]) # 바꾸기전
    os.rename(name, os.path.join(path, '{0:06d}'.format(idx+1)+'.jpg'))
    print(idx, ":", name) # 바꾼 후
    print()
    

4985 : 009950.jpg
4985 : ./VOC2021/JPEGImages\009950.jpg

4986 : 009954.jpg
4986 : ./VOC2021/JPEGImages\009954.jpg

4987 : 009955.jpg
4987 : ./VOC2021/JPEGImages\009955.jpg

4988 : 009958.jpg
4988 : ./VOC2021/JPEGImages\009958.jpg

4989 : 009959.jpg
4989 : ./VOC2021/JPEGImages\009959.jpg

4990 : 009961.jpg
4990 : ./VOC2021/JPEGImages\009961.jpg

glob.glob()로 디렉토리의 원하는 파일명을 긁어올 수 있다.

os.rename로 파일명을 수정할 수 있다.

 

 

 

반응형

'Debugging' 카테고리의 다른 글

custom data로 tfrecord 변환해서 efficientDet 학습하기  (0) 2022.01.23
Git 라이브러리 쓰는 법  (0) 2021.12.29
한셀 데이터로드 오류  (0) 2021.06.29
Pandas Excel 데이터로드  (0) 2021.06.28

+ Recent posts