Python glob

LshDevLog·2026년 4월 17일

python

목록 보기
11/16
post-thumbnail
  • glob은 파일 경로 패턴 매칭을 위해 사용하는 파이썬 표준 라이브러리
  • shell의 와일드카드 검색과 비슷

glob

import os
import glob
import shutil

os.makedirs("images", exist_ok=True)

for file in glob.glob("*.png"):
    shutil.move(file, "images/")
  • glob
    • 가장 많이 쓰는 핵심 함수
    • 패턴에 맞는 파일 경로들을 리스트로 반환

iglob

import glob

files = glob.iglob("*.txt")
print(type(files))
  • iglob
    • 시작이 빠름
    • 대량 데이터 처리에 강함
    • 리스트가 아닌 iterator 리턴(generator처럼 동작)
    • 파일 수가 많을 때 메모리 절약 가능
      • glob은 요소 전체를 한번에 메모리에 올림
      • iglob은 현재 처리하는 몇 개의 요소만 메모리에 올림
        • lazy evaluation(지연 평가) 방식: 필요할 때만 다음 값을 계산

파라미터

recursive

import os
import glob
import shutil

os.makedirs("data", exist_ok=True)

for file in glob.glob("temp/**/*.txt", recursive=True):
    shutil.move(file, "data/")
  • recursive
    • 하위 폴더까지 순회
    • 기본값은 False
    • **: 모든 하위 디렉토리

root_dir

import os
import glob
import shutil

os.makedirs("data", exist_ok=True)

for file in glob.glob("*.txt", root_dir="temp"):
    shutil.move(os.path.join("temp", file), "data/")
  • root_dir
    • 검색 기준 폴더 지정
    • temp폴더안에 *.txt파일 검색
    • 검색에 대한 기준이기 때문에 실제 이동시킬때 검색 기준 폴더와 파일을 합친 경로가 필요

include_hidden

import os
import glob
import shutil

os.makedirs("data", exist_ok=True)

for file in glob.glob("*", include_hidden=True):
    shutil.move(file, "data/")
  • include_hidden
    • 숨김 파일/폴더까지 검색
    • 주로 .env, .gitignore같은 dotfile 검색 시 유용

0개의 댓글