Python/Utils

파이썬 glob.glob() : 디렉토리 내 파일, 폴더 정보 리스트로 반환

jimmy_AI 2022. 4. 3. 18:05
반응형

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']