glob()으로 재귀적 파일 검색하기
Python에서 glob() 함수를 사용해 하위 폴더까지 재귀적으로 파일을 검색하려면 Python 3.5 이상 버전이 필요합니다. glob 모듈은 '**' 패턴을 지원하는데, 이 패턴은 recursive=True 옵션을 함께 전달했을 때만 해석되며, 지정한 경로 아래의 모든 하위 디렉터리를 재귀적으로 탐색하도록 Python에 지시합니다.
glob.iglob 사용 예제
import glob
for filename in glob.iglob('src/**/*', recursive=True):
print(filename)위 코드는 src 디렉터리와 그 안의 모든 하위 디렉터리에 있는 파일들을 재귀적으로 탐색하여 출력합니다. 필요에 따라 if 문을 활용해 특정 확장자나 이름 패턴 등 원하는 조건으로 파일명을 필터링할 수도 있습니다.
구버전 Python에서 os.walk 사용하기
Python 3.5 미만 버전에서는 os.walk를 사용해 디렉터리를 재귀적으로 순회하며 파일을 검색할 수 있습니다. 정규식과 함께 사용하면 원하는 패턴에 맞는 파일만 손쉽게 추출할 수 있습니다.
os.walk + 정규식 사용 예제
import os, re, os.path
pattern = "^your_regex_here$"
mypath = "my_folder"
for root, dirs, files in os.walk(mypath):
for file in filter(lambda x: re.match(pattern, x), files):
print(file)이 코드는 my_folder 내부의 모든 하위 디렉터리를 순회하면서, 지정한 정규식 패턴과 일치하는 파일명을 찾아 출력합니다. 간단한 와일드카드 검색에는 glob을, 복잡한 패턴 매칭이 필요한 경우에는 os.walk와 정규식 조합을 사용하는 것이 좋습니다.