Python의 glob 모듈을 사용하여 패턴으로 파일을 찾는 방법

파이썬의 glob 모듈은 지정된 패턴과 일치하는 파일과 디렉토리를 찾는 강력한 도구입니다. 디렉토리에서 특정 확장자나 이름을 가진 파일을 검색해야 할 때 특히 유용합니다. 이 문서에서는 glob 모듈을 사용하여 효율적으로 파일을 찾는 방법을 안내합니다.

glob 모듈 소개

glob 모듈은 Unix 셸 스타일 와일드카드를 사용하여 파일과 디렉토리를 나열하는 방법을 제공합니다. 이는 파일 검색, 일괄 처리 등과 같은 작업에 유용합니다. 이 모듈에는 파일 이름을 패턴과 일치시켜 파일 관리를 더 쉽게 만드는 기능이 포함되어 있습니다.

glob의 기본 사용법

glob 모듈을 사용하려면 모듈을 가져온 다음 glob.glob() 함수를 사용하여 패턴과 일치하는 파일을 찾아야 합니다. 사용하는 패턴에는 *(모든 문자와 일치) 및 ?(단일 문자와 일치)와 같은 와일드카드가 포함될 수 있습니다.

예시

특정 확장자를 가진 파일 찾기

예를 들어, 디렉토리에서 .txt 확장자가 있는 모든 파일을 찾으려면 다음을 사용할 수 있습니다.

import glob

# Find all .txt files in the current directory
txt_files = glob.glob('*.txt')
print(txt_files)

하위 디렉토리에서 파일 찾기

하위 디렉토리에서 특정 확장자를 가진 모든 파일을 찾으려면 패턴에 하위 디렉토리를 지정합니다.

import glob

# Find all .jpg files in the 'images' subdirectory
jpg_files = glob.glob('images/*.jpg')
print(jpg_files)

와일드카드 사용

와일드카드는 더 광범위한 파일을 일치시키는 데 도움이 될 수 있습니다. 예를 들어, "report"로 시작하는 모든 텍스트 파일을 찾으려면:

import glob

# Find all files starting with 'report' and ending with .txt
report_files = glob.glob('report*.txt')
print(report_files)

여러 확장자를 가진 파일 찾기

또한 여러 와일드카드 일치를 포함하는 패턴을 사용하여 여러 확장명을 가진 파일을 찾으려면 glob을 사용할 수 있습니다.

import glob

# Find all .txt and .md files
files = glob.glob('*.txt') + glob.glob('*.md')
print(files)

고급 사용

glob 모듈은 간단한 패턴 외에도 더 복잡한 패턴을 지원합니다. 예를 들어, **와 같은 패턴을 사용하여 디렉토리를 재귀적으로 검색할 수 있습니다.

재귀 검색

모든 하위 디렉토리에서 파일을 재귀적으로 검색하려면 ** 패턴과 recursive=True 인수를 사용합니다.

import glob

# Find all .py files in the current directory and subdirectories
py_files = glob.glob('**/*.py', recursive=True)
print(py_files)

결론

glob 모듈은 파이썬에서 파일을 관리하는 데 필수적인 도구로, 패턴을 사용하여 파일을 쉽게 검색할 수 있습니다. 특정 파일 유형으로 작업하든, 디렉토리를 검색하든, 복잡한 검색을 수행하든, glob는 간단하고 효과적인 솔루션을 제공합니다.