[python package] glob

강콩콩·2022년 3월 12일
0

python_dev

목록 보기
1/2
post-thumbnail

✨ 하위 파일 리스트를 간편하게! : glob

os 패키지로만 파일 순회를 하던 나를 반성하며.. 🎃

간단한 용례

✔ glob 패키지는 *(아스타리카)를 활용하여, 파일 경로 리스트를 간단히 얻을 수 있습니다.
✔ '*'는 어떤 문자열도 들어올 수 있음을 나타냅니다.
간단히 recursive=True 변수를 추가하여 모든 하위 디렉토리를 순회할 수도 있죠!

😎 아래는 사용 예시입니다!

from glob import glob

glob('*.jpg')
# workdir의 .jpg로 끝나는 파일명의 전부를 리스트로 반환

glob('**/*.jpg', recursive=True)
# workdir 이하 디렉토리 포함하여 .jpg로 끝나는 파일명의 전부를 리스트로 반환

glob('*/*.txt')
# workdir 1 depth 이하 디렉토리에서 .txt로 끝나는 파일명의 전부를 리스트로 반환

이렇게 아주 간단한 방법으로, 원하는 경로와 포맷의 데이터 리스트를 얻을 수 있습니다.

일반적인 사용법

# workdir 이하에 data/ 라는 dir이 존재한다고 가정
# data/ 이하에는 jpg 파일 존재
from glob import glob
import os

path_list = []
target_path = os.path.join(os.getcwd(), 'data', '*.jpg')

for path in glob.glob(target_path):
    path_list.append(path)
    

다만, 전체 path가 list의 element이기 때문에, 단순 file name을 필요로 하는 경우는,

import os

fname_list = [os.path.basename(path) for path in path_list]

로 사용하면 됩니다.

마치며

명료하고 편리한 glob 패키지!
하지만 recursive 옵션은 하위에 너무 많은 데이터가 존재할 경우,
성능 이슈가 발생할 수 있다고 하니, 상황에 맞게 사용하면 됩니다. 😎

참고한 페이지

https://mingchin.tistory.com/168
https://wikidocs.net/83

profile
MLOps, ML Engineer. 데이터에서 시스템으로, 시스템에서 가치로.

0개의 댓글