발전을 위한 기록

[Python] 파이썬으로 파일 자동 분류하기 본문

프로그래밍/파이썬

[Python] 파이썬으로 파일 자동 분류하기

릴릴2 2024. 1. 25. 22:10

😖

확장자별로 폴더를 만들고 저장할 수 있습니다!

 

코드실행 후 정리하고싶은 폴더의 경로를 입력하면 아래와 같이 자동 정리 됩니다!

 


전체 코드

import os

def organize_directory(path):
    for item in os.listdir(path):
        if os.path.isfile(os.path.join(path, item)):
            file_extension = item.split('.')[-1]
            extension_dir = os.path.join(path, file_extension)
            if not os.path.exists(extension_dir):
                os.makedirs(extension_dir)
            os.rename(os.path.join(path, item), os.path.join(extension_dir, item))

user_input_path = input("데스크톱의 디렉토리 경로를 입력하세요: ")

organize_directory(user_input_path)

 


1. import

import os
  • Python 내장 모듈인 os를 가져옵니다. 이 모듈은 운영체제와 상호작용하기 위한 여러 함수를 제공합니다.

2. 함수 정의

def organize_directory(path):
    # 주어진 경로 내의 파일들을 확장자별로 정리합니다.
    for item in os.listdir(path):
        # 해당 아이템이 파일인 경우,
        if os.path.isfile(os.path.join(path, item)):
            # 파일의 확장자를 추출합니다.
            file_extension = item.split('.')[-1]
            # 확장자 이름으로 된 서브디렉토리 경로를 생성합니다.
            extension_dir = os.path.join(path, file_extension)
            # 해당 서브디렉토리가 존재하지 않으면 생성합니다.
            if not os.path.exists(extension_dir):
                os.makedirs(extension_dir)
            # 파일을 해당 확장자의 서브디렉토리로 이동합니다.
            os.rename(os.path.join(path, item), os.path.join(extension_dir, item))

 

def organize_directory(path)

 

  • organize_directory라는 함수를 정의합니다. 

 

for item in os.listdir(path):
  • os.listdir(path)는 입력된 경로(path) 내에 있는 모든 항목(파일 또는 디렉토리)의 리스트를 반환합니다. 이 리스트를 기반으로 반복문을 실행하여 경로 내의 모든 항목을 하나씩 처리합니다.

 

if os.path.isfile(os.path.join(path, item))
  • os.path.join(path, item)는 현재 항목의 절대 경로를 생성합니다.
  • os.path.join 함수를 사용하는 이유는 운영체제에 따라 경로 구분자가 달라질 수 있기 때문입니다.
  • os.path.isfile 함수를 사용하여 현재 항목이 파일인지 확인합니다. 주어진 경로가 파일인 경우 True를 반환하고, 그렇지 않은 경우 False를 반환합니다.

 

file_extension = item.split('.')[-1]
  • 현재 항목의 파일 이름에서 마지막 .을 기준으로 분리하여 파일 확장자를 추출합니다. 

 

extension_dir = os.path.join(path, file_extension)
  • 추출한 파일 확장자를 사용하여 해당 확장자에 해당하는 서브 디렉토리의 경로를 생성합니다.
  • 서브 디렉토리는 파일을 정리하기 위한 목적으로 사용됩니다.

 

if not os.path.exists(extension_dir)
  • 만약 해당 확장자의 서브 디렉토리가 존재하지 않으면, 새로 생성합니다.

 

os.rename(os.path.join(path, item), os.path.join(extension_dir, item))
  • 현재 항목을 해당 확장자의 서브 디렉토리로 이동시킵니다. 즉, 파일을 확장자별로 분류하여 정리하는 역할을 합니다.

3. 디렉토리 경로 입력 받기

user_input_path = input("데스크톱의 디렉토리 경로를 입력하세요: ")
  • 'input()'으로 사용자로부터 디렉토리 경로를 입력 받습니다.

4. 함수 호출

organize_directory(user_input_path)
  • 사용자로부터 입력받은 경로를 organize_directory 함수에 전달하여 파일 정리 작업을 시작합니다.

출력 결과

 

728x90