반응형
glob.glob 사용법, 예제 정리
이번 글에서는 파이썬에서 디렉토리 내의 파일과 폴더의 이름들을
리스트로 모아서 반환받을 수 있는 glob.glob의 사용법에 대해서 살펴보겠습니다.
이해를 돕기 위하여 현재 디렉토리가 my_folder 내이고,
저장된 폴더 및 파일의 목록이 아래와 같다고 가정해보겠습니다.
현재 디렉토리 내 전체 파일, 하위 폴더 이름 모아서 반환
가장 기본적인 예제로, 별표 1개(*)로 input을 지정하여
현재 폴더 내 모든 파일/하위 폴더의 목록을 전부 가져올 수 있습니다.
import glob
glob.glob('*') # ['111.png', 'aaa.txt', '222.png', 'bbb.txt', 'example']
특정 이름이나 확장자를 가진 파일(폴더)만 검색하여 반환
특정 이름을 포함하거나, 원하는 확장자에 대해서만
조건을 만족하는 파일 및 하위 폴더들만 모아서 탐색하고 싶은 경우는
아래처럼 별표를 이용한 색인을 진행할 수 있습니다.
# 특정 확장자 예시
glob.glob('*.png') # ['111.png', '222.png']
glob.glob('*.txt') # ['aaa.txt', 'bbb.txt']
# 특정 이름 예시
glob.glob('2*') # ['222.png']
glob.glob('*a*') # ['aaa.txt', 'example']
2*처럼 2로 시작하는 파일이나 *a*처럼 가운데 a가 포함된 파일을 검색할 수 있습니다.
반응형
하위 디렉토리 내 파일/폴더 목록 반환
하위 폴더 내의 파일 목록을 탐색하고 싶은 경우에는
폴더 이름/* 형태로 input을 적어주시면 됩니다.
my_folder의 하위 디렉토리인 example 폴더 내 파일들을 검색한 예시는 아래와 같습니다.
glob.glob('example/*') # ['example/333.png', 'example/ccc.txt']
glob.glob('example/*.txt') # ['example/ccc.txt']
현재, 하위 디렉토리를 모두 포함하여 파일/폴더 탐색 반환
현재 디렉토리 + 하위 폴더 내의 모든 파일 및 폴더 들을 색인하고 싶은 경우에는
별표 2개(**)를 이용한 탐색을 진행해주시면서,
recursive 인자를 True로 지정하여 하위 디렉토리 검색 포함을 허용해주시면 됩니다.
glob.glob('**', recursive = True)
# 출력 결과
['111.png',
'aaa.txt',
'222.png',
'bbb.txt',
'example',
'example/333.png',
'example/ccc.txt']
만일, 현재 + 하위 디렉토리의 특정 확장자 파일을 모두 찾으려면
아래와 같이 **/* 형태로 검색을 진행해줄 수도 있습니다.
glob.glob('**/*.txt', recursive = True)
# ['aaa.txt', 'bbb.txt', 'example/ccc.txt']
'Python > Utils' 카테고리의 다른 글
파이썬 업로드 항목 생성, 올린 파일 읽기(코랩, 주피터 노트북 환경) (0) | 2022.04.04 |
---|---|
코랩에서 이미지 파일을 넣는 방법 (0) | 2022.03.16 |
터미널에서 파이썬 실행 시 인자 input 순서대로 받기(sys.argv 이용) (0) | 2022.03.14 |