728x90
반응형

python glob

glob(global)은 Python의 표준 라이브러리로, 파일 시스템에서 특정 패턴과 일치하는 파일과 디렉토리를 검색할 때 유용하게 사용됩니다.

glob 모듈은 유닉스 스타일의 경로명 패턴 매칭 규칙을 따릅니다.


주요 함수

  1. glob.glob()

    • 지정한 패턴과 일치하는 모든 파일과 디렉토리의 경로를 리스트로 반환합니다.
    • 재귀적으로 검색하려면 recursive=True 옵션을 사용합니다.

    python

    import glob
    
    # 현재 디렉토리의 모든 .txt 파일 검색
    txt_files = glob.glob("*.txt")
    print(txt_files)
    
    # 하위 디렉토리까지 포함하여 모든 .txt 파일 검색
    all_txt_files = glob.glob("**/*.txt", recursive=True)
    print(all_txt_files)
    
  2. glob.iglob()

    • glob.glob()과 동일하지만, 결과를 리스트 대신 이터레이터로 반환합니다.
    • 메모리 효율적입니다.

    python

    import glob
    
    for file in glob.iglob("*.txt"):
        print(file)
    
  3. glob.escape()

    • 패턴에서 특수 문자를 이스케이프 처리합니다.
    • 파일 이름에 *, ?, [ 같은 특수 문자가 포함된 경우 사용합니다.

    python

    import glob
    
    pattern = glob.escape("file[1].txt")
    files = glob.glob(pattern)
    print(files)
    

주요 패턴

  • * : 모든 문자열 (0개 이상의 문자)
  • ? : 임의의 한 문자
  • [seq] : 대괄호 안의 문자 중 하나
  • [!seq] : 대괄호 안의 문자가 아닌 것 중 하나

예제

python

import glob

# 특정 확장자의 파일만 검색
image_files = glob.glob("images/*.png")
print(image_files)

# 숫자로 끝나는 파일 검색
numbered_files = glob.glob("data/file[0-9].csv")
print(numbered_files)

# 특정 디렉토리 내 모든 파일 검색
all_files = glob.glob("my_folder/*")
print(all_files)

glob은 파일 경로 탐색에 직관적이고 강력한 도구로, 다양한 자동화 스크립트에 유용합니다.

728x90
반응형

+ Recent posts