파이썬으로 디렉토리 트리 구조를 나열하는 방법
파이썬에서 특정 경로 아래의 전체 디렉토리 트리 구조를 확인하고 싶다면 os.walk() 메서드를 사용하는 것이 가장 간단합니다. 이 메서드는 지정한 루트 디렉토리부터 시작해 모든 하위 디렉터리와 파일을 재귀적으로 순회하며, 각 단계마다 현재 경로, 하위 디렉터리 목록, 파일 목록을 튜플 형태로 반환합니다.
반환된 경로들을 os.path.join()으로 연결하면 각 파일과 폴더의 절대(전체) 경로를 손쉽게 얻을 수 있습니다.
예제 코드
import os
def tree_printer(root):
for root, dirs, files in os.walk(root):
for d in dirs:
print(os.path.join(root, d))
for f in files:
print(os.path.join(root, f))
tree_printer('.')위 코드는 먼저 트리 내의 모든 디렉터리 경로를 출력한 뒤, 이어서 각 디렉터리에 포함된 파일들의 경로를 재귀적으로 출력합니다. 인자로 '.'를 전달하면 현재 작업 디렉터리를 기준으로 탐색하며, 원하는 다른 경로를 지정할 수도 있습니다.
출력 결과 예시
C:\hello\my_folder C:\hello\another_folder C:\hello\my_folder\abc.txt C:\hello\my_folder\xyz.txt C:\hello\another_folder\new.txt ...
참고: pathlib를 활용한 대안
파이썬 3.4 이상에서는 객체 지향적인 경로 처리를 제공하는 pathlib 모듈을 사용할 수도 있습니다. 다음과 같이 작성하면 더욱 직관적으로 트리 구조를 나열할 수 있습니다.
from pathlib import Path
def tree_printer(root):
for path in Path(root).rglob('*'):
print(path)
tree_printer('.')Path.rglob('*')는 루트 디렉터리 아래의 모든 파일과 폴더를 재귀적으로 탐색해주므로, 코드가 한층 간결해집니다. 상황에 맞게 os.walk() 또는 pathlib 중 편한 방식을 선택해 사용하시면 됩니다.