glob 라이브러리의 glob.glob() 함수는 주어진 패턴과 일치하는 파일 및 디렉터리를 찾아 정렬된 목록으로 반환한다. 주로 와일드카드 문자를 사용하여 파일을 검색한다.
import glob
file_path = glob.glob(pathname, recursive=False)
pathname에 파일 및 디렉터리 경로를 와일드카드 패턴으로 지정.
'recursive=True'로 설정하면 디렉터리의 하위 계층까지 검색할 수 있음.
# * = 임의 길이의 문자열
file_path = glob.glob('dirs/*.txt')
dirs 폴더 아래에 있는 모든 txt 파일을 file_path에 리스트로 저장한다.
# ? = 한 자리 문자열
file_path = glob.glob('dirs/image?.jpg')
dirs 폴더 아래에 있는 'image' + '?(한 자리 문자열)' + '.jpg',
즉, 예를 들어 [image1.jpg, image2.jpg, image3.jpg, image_.jpg] 등을 리스트로 저장한다.
# 모든 하위 디렉토리 탐색하기
file_path = glob.glob('dirs/**', recursive=True)
dirs 폴더 아래에 있는 모든 파일을 file_path에 리스트로 저장한다.
TS7 = 'C:/Users/UserName/project/TS7'
TS8 = 'C:/Users/UserName/project/TS8'
dirs_path = TS7
image_01 = glob.glob(dirs_path + '/**/*_01.jpg', recursive=True)
image_0203 = glob.glob(dirs_path + '/**/*_03.jpg', recursive=True) \
+ glob.glob(dirs_path + '/**/*_02.jpg', recursive=True)
설명 :
TS7의 하위 디렉터리에 있는 파일명이 "~_01.jpg"로 끝나는 이미지와, "~_02.jpg","~_03.jpg"으로 끝나는 이미지 모두를 각각 리스트로 저장함.