어떤 디렉토리 내에 존재하는 모든 이미지 파일들을 cv2.imread 등의 방식으로 읽고 싶다면, 일단 각 이미지 파일의 경로를 알아야합니다. 저는 그것을 img_path_list라는 이름의 리스트에 하나씩 담아주도록 하겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import os
root_dir = 'C:/Users/Sim/Desktop/test' # 디렉토리
img_path_list = []
possible_img_extension = ['.jpg', '.jpeg', '.JPG', '.bmp', '.png'] # 이미지 확장자들
for (root, dirs, files) in os.walk(root_dir):
if len(files) > 0:
for file_name in files:
if os.path.splitext(file_name)[1] in possible_img_extension:
img_path = root + '/' + file_name
# 경로에서 \를 모두 /로 바꿔줘야함
img_path = img_path.replace('\\', '/') # \는 \\로 나타내야함
img_path_list.append(img_path)
print(img_path_list)
|
cs |
위 코드에서 중요한 부분은 파일의 확장자를 체크하는 부분입니다. 디렉토리 내 많은 파일들 중에서 이미지 파일들의 경로만 리스트에 넣어줘야 하기 때문입니다. os.path.splitext() 함수를 이용해서 파일의 확장자만 따로 분리해서 읽은 후에 이미지 파일의 확장자인 경우에만 img_path_list라는 이름의 리스트에 추가하도록 했습니다.
위 코드를 실행하면, 바탕화면에 있는 test 디렉토리(C:\Users\Sim\Desktop\test) 내에 존재하는 모든 이미지 파일들의 경로를 리스트의 형태로 얻을 수 있습니다. 참고로 test 디렉토리 내부는 다음과 같은 트리 구조를 갖고 있습니다.
이미지 파일과 텍스트 파일 등 다양한 파일들이 여러 폴더 내에 들어있는 상황입니다.
위 코드를 통해 얻은 test 디렉토리 내 이미지들의 경로 리스트입니다.
이미지 파일들의 경로만 리스트에 잘 담겨진 것을 확인하실 수 있습니다. 만약 디렉토리 내에 다른 확장자의 이미지들이 존재한다면, 위 코드에서 possible_img_extension 리스트에 추가해주시면 됩니다.
관련 글
☞ [python] 파일의 확장자를 알려주는 함수, os.path.splitext()
(이 글은 2021-4-2에 마지막으로 수정되었습니다.)
'Dev > python' 카테고리의 다른 글
[ubuntu+python] 얼굴 인식하기 (face_recognition 라이브러리 설치부터 사용까지) (3) | 2021.01.19 |
---|---|
[Anaconda+python] 아나콘다 스파이더에서 반복되는 변수명 한번에 다른 것으로 바꾸려면, Ctrl + R (2) | 2021.01.11 |
[python] 해당 경로가 디렉토리인지 파일인지 확인하는 방법 (0) | 2021.01.09 |
[python] cv2.imread, cv2.imwrite 한글 경로 인식을 못하는 문제 해결 방법 (2) | 2021.01.08 |
[python] 쉽고 간단하게 마스크 착용 유무 판별기 만들기 (106) | 2021.01.07 |
[python] 랜덤 비밀번호 생성하기 (6) | 2021.01.06 |
[python] 이번 달의 첫 시간과 마지막 시간을 알고 싶다면? 2021-01-01 00:00:00 과 2021-01-31 23:59:59 (2) | 2021.01.05 |
[python] 리스트 내 중복된 요소 없애고 하나씩만 남게 하는 3가지 방법 (2) | 2021.01.04 |