Python/Python - 파일

서브 디렉토리 별로 포함된 이미지 파일을 딕셔너리에 저장하는 파이썬 코드

webnautes 2024. 10. 10. 21:01
반응형

서브 디렉토리 별로 포함된 이미지 파일을 딕셔너리에 저장하는 파이썬 코드입니다. 



2024. 10. 10 최초작성



테스트 결과를 쉽게 확인할 수 있도록 서브 디렉토리에 있는 이미지 개수를 줄여놓고 테스트했습니다. 이미지 파일 외에 _DS_Store 같은 다른 파일이 포함되어도 처리할 수 있도록 코드가 작성되어 있습니다. 

 



전체 코드입니다. 

 

import os

# 디렉토리 지정
dataset_path = 'train'

# 서브 디렉토리 이름 얻기
entries = os.listdir(dataset_path)
subdirs = [entry for entry in entries if os.path.isdir(os.path.join(dataset_path, entry))]

# 서브 디렉토리 별로 서브 디렉토리 이름을 key로하여 딕셔널리에 이미지 파일 리스트 저장하기
list_files = {}

for subdir in subdirs:
    files = [ dataset_path + '/' + subdir + '/' + filename for filename in os.listdir(dataset_path + '/' + subdir) if filename.lower().endswith('.jpg')]
    print(f'number of files in {dataset_path + '/' + subdir} : ', len(files))

    list_files[subdir] = files


print(list_files)



실행하면 서브 디렉토리 이름을 key로하여 딕셔너리에 저장된 이미지 파일 리스트를 출력합니다.

 

number of files in train/dogs :  10

number of files in train/cats :  10

{'dogs': ['train/dogs/dog.1.jpg', 'train/dogs/dog.2.jpg', 'train/dogs/dog.3.jpg', 'train/dogs/dog.7.jpg', 'train/dogs/dog.6.jpg', 'train/dogs/dog.4.jpg', 'train/dogs/dog.5.jpg', 'train/dogs/dog.8.jpg', 'train/dogs/dog.9.jpg', 'train/dogs/dog.10.jpg'], 'cats': ['train/cats/cat.6.jpg', 'train/cats/cat.7.jpg', 'train/cats/cat.5.jpg', 'train/cats/cat.4.jpg', 'train/cats/cat.1.jpg', 'train/cats/cat.3.jpg', 'train/cats/cat.2.jpg', 'train/cats/cat.10.jpg', 'train/cats/cat.9.jpg', 'train/cats/cat.8.jpg']}





반응형