Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 glob() 함수로 재귀적으로 파일을 찾는 방법

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와 정규식 조합을 사용하는 것이 좋습니다.