기계는 거짓말하지 않는다

Python 모든 하위 디렉터리 파일 경로들을 디렉터리 별로 묶기 본문

Python

Python 모든 하위 디렉터리 파일 경로들을 디렉터리 별로 묶기

KillinTime 2024. 6. 4. 22:29

Python에서 하위 디렉터리들의 깊이를 알 수 없으며 각각 다른 깊이를 가지고 있고,

파일 경로들을 디렉터리 별로 묶고 싶을 경우 간단하게 사용할 수 있는 방법이다.

import os

def find_files_by_directory(directory, extensions):
    files_by_directory = {} # dictionary에 저장
    for root, dirs, files in os.walk(directory):
        matched_files = [os.path.join(root, file) for file in files if file.endswith(extensions)]
        if matched_files:
            files_by_directory[root] = matched_files
    return files_by_directory

if __name__ == "__main__":
    directory = '.'  # 시작 디렉터리(변경)
    extensions = ('.jpg', '.png', '.jpeg', '.mp4', '.avi') # 찾을 파일 확장자
    
    files_by_directory = find_files_by_directory(directory, extensions)
    for dir_path, files in files_by_directory.items():
        print(f"Directory: {dir_path}")
        for file in files:
            print(f"  {file}")

dictionary의 key를 directory 경로를 이용하여 파일 경로 리스트를 저장한다.

 

Comments