[파이썬] os `os.walk()`를 사용한 디렉토리 탐색

파이썬에서는 os 모듈을 사용하여 디렉토리와 파일을 다룰 수 있습니다. os.walk() 함수는 특히 디렉토리의 하위 파일과 디렉토리를 탐색하는 데 유용합니다. 이 함수는 재귀적으로 디렉토리를 탐색하며, 각 디렉토리에서 트리에 있는 하위 디렉토리와 파일들을 확인할 수 있습니다. 이를 통해 원하는 디렉토리 구조를 탐색할 수 있습니다.

os.walk()의 사용법

os.walk() 함수는 세 가지 개체를 반환합니다:

  1. 현재 탐색 중인 디렉토리의 경로
  2. 현재 디렉토리의 하위 디렉토리 리스트
  3. 현재 디렉토리의 파일 리스트

아래는 os.walk() 함수의 간단한 사용 예시입니다:

import os

# 탐색할 디렉토리 경로
directory = '/path/to/directory'

# os.walk()를 사용하여 디렉토리 탐색
for dirpath, dirnames, filenames in os.walk(directory):
    print(f'현재 디렉토리: {dirpath}')
    print(f'하위 디렉토리: {dirnames}')
    print(f'파일: {filenames}')
    print()

위 예시에서 for 반복문은 디렉토리를 순환하며 각 디렉토리의 경로, 하위 디렉토리 리스트 및 파일 리스트를 출력합니다.

os.walk()를 통해 하위 디렉토리 탐색하기

os.walk() 함수를 사용하면 디렉토리의 하위 디렉토리를 탐색할 수 있습니다. 디렉토리의 하위 디렉토리를 탐색하는 방법은 os.walk() 함수를 재귀적으로 호출하는 것입니다. 아래는 이러한 방법을 사용하여 디렉토리의 모든 하위 디렉토리를 탐색하는 예시입니다:

import os

# 탐색할 디렉토리 경로
directory = '/path/to/directory'

# 재귀적으로 디렉토리 탐색
def explore_directory(directory):
    for dirpath, dirnames, filenames in os.walk(directory):
        print(f'현재 디렉토리: {dirpath}')
        print(f'하위 디렉토리: {dirnames}')
        print(f'파일: {filenames}')
        print()

        # 각 하위 디렉토리에 대해 재귀적으로 디렉토리 탐색
        for dirname in dirnames:
            explore_directory(os.path.join(dirpath, dirname))

# 디렉토리 탐색 시작
explore_directory(directory)

위의 예시 코드는 explore_directory()라는 재귀적인 함수를 정의하여 디렉토리와 하위 디렉토리의 구조를 출력합니다. 이 함수는 각 하위 디렉토리에 대해 재귀적으로 호출됩니다.

결론

파이썬의 os.walk() 함수를 사용하면 디렉토리와 파일 구조를 재귀적으로 탐색할 수 있습니다. 이를 통해 디렉토리 내부의 모든 하위 디렉토리와 파일을 처리하는 작업에 유용하게 사용할 수 있습니다.