Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 현재 디렉토리의 모든 하위 디렉토리 목록 가져오는 방법

Python에서 특정 디렉토리의 모든 하위 디렉토리를 재귀적으로(하위 디렉토리까지 모두 탐색하여) 목록으로 가져오려면 os.walk 함수를 사용하는 것이 가장 간단합니다.

os.walk로 재귀적으로 하위 디렉토리 찾기

os.walk는 디렉토리 트리를 순회하면서 세 개의 요소(현재 경로, 하위 디렉토리 목록, 파일 목록)로 구성된 튜플을 생성합니다. 이 중 첫 번째 요소가 바로 디렉토리 경로이므로, 이를 활용하면 전체 하위 디렉토리 목록을 쉽게 얻을 수 있습니다.

import os
subdirs = [x[0] for x in os.walk('.')]
print(subdirs)

위 코드는 현재 디렉토리('.')를 기준으로 모든 깊이의 하위 디렉토리 경로를 리스트에 담아 출력합니다. 첫 번째 항목은 시작 디렉토리 자신도 포함된다는 점에 유의하세요.

os.listdir과 os.path.isdir로 바로 아래 단계의 디렉토리만 찾기

재귀적 탐색 없이 현재 디렉토리 바로 아래에 있는 디렉토리만 필요하다면, os.listdir로 항목들을 나열한 뒤 os.path.isdir로 필터링하는 방법을 사용할 수 있습니다.

import os
d = '.'
subdirs = [os.path.join(d, o) for o in os.listdir(d) if os.path.isdir(os.path.join(d, o))]

이 코드는 d 디렉토리 안의 항목 중 실제 디렉토리인 것만 골라서 전체 경로 형태로 리스트를 만듭니다. 파일은 자동으로 제외되며, 결과에는 디렉토리 이름 앞에 경로가 붙어 있어 바로 활용하기 좋습니다.

정리

  • 모든 하위 디렉토리(재귀): os.walk 사용 — 깊은 구조까지 한 번에 탐색 가능
  • 바로 아래 디렉토리만: os.listdir + os.path.isdir 조합 — 빠르고 가벼운 필터링

상황에 맞게 두 방법을 선택하면 됩니다. 대규모 프로젝트에서는 최신 Python 버전 기준 pathlib.Path.rglob('*')is_dir()을 조합하는 방법도 좋은 대안이 될 수 있습니다.