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

파이썬으로 디렉토리 트리 구조를 나열하는 방법

파이썬으로 디렉토리 트리 구조를 나열하는 방법

파이썬에서 특정 경로 아래의 전체 디렉토리 트리 구조를 확인하고 싶다면 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 중 편한 방식을 선택해 사용하시면 됩니다.