Python Code

glob 사용법

Kimhj 2024. 2. 8. 10:27
  • python 에서 Path를 다룰 때 보통 os 모듈을 많이 사용했으나, Pytorch 에서 활용할 때 조금 불편한 부분이 있음.
  • os 모듈보다 좀 더 편하고 많이 활용하는 패키지를 찾아보니 glob 이 있었고, 사실 알고 있었지만 os가 더 익숙해서 활용하지 않았음.
  • 늦었지만 glob 활용법을 익혀두고 앞으로도 활용하지 않을듯 싶어 정리하고자 함.
  • os 모듈과 거의 흡사하지만, 문자열과 형식을 더 다루기 쉬웠음.

 

  • glob() 함수는 인자로 받은 패턴과 이름이 일치하는 모든 파일과 디렉터리의 리스트를 반환하며, 이 패턴을 그냥 *라고 주면 모든 파일과 폴더를 확인 가능함.
from glob import glob
glob('*.exe')               # 현재 디렉터리의 .exe 파일
# output : ['python.exe', 'pythonw.exe']

glob('*.txt')               # 현재 디렉터리의 .txt 파일
# output : ['LICENSE.txt', 'NEWS.txt']
  • 현재 경로 외, 다른 경로에서도 조회 가능함.
glob(f"{base_path}/U*")              # base_path 내 U로 시작하는 폴더/파일 조회
['/home/hjkim/projects/User', '/home/hjkim/projects/usr']

 

  • 딥러닝에서 많이 활용되는 포맷을 아래와 같이 활용하면 편리하게 사용 가능할 듯 함.
    • .csv
    • .dcm
    • .jpg
    • .png
    • ...
  • 아래와 같이 os 모듈과 같이 활용할 수도 있음.
from glob import glob
from os.path import isdir

for x in glob('*'):
    if isdir(x):                # 디렉터리인가?
        print(x, '<DIR>')
    else:
        print(x)