본문 바로가기
Python

[Python] 파일 자동 정리 프로그램 만들기

by teamnova 2025. 2. 21.
728x90

안녕하세요! 오늘은 Python을 사용해 특정 폴더의 파일을 확장자별로 자동 정리하는 프로그램을 만들어 보겠습니다. 이 프로그램은 폴더 안의 파일들을 확장자별로 분류하고, 각 파일을 해당 확장자 폴더로 이동시켜 정리해 줍니다.

 

1. 파일 자동 정리 프로그램

우리가 작성할 프로그램은 다음과 같은 작업을 합니다:

  1. 사용자가 지정한 폴더를 확인합니다.
  2. 폴더 안에 있는 파일들의 확장자를 확인합니다.
  3. 각 확장자에 해당하는 이름의 폴더를 생성합니다.
  4. 파일을 해당 폴더로 이동시킵니다.

예를 들어, 아래와 같은 폴더가 있다고 가정해 봅시다.

정리 전:
my_folder/
    file1.txt
    file2.jpg
    file3.pdf
    file4.txt

 

프로그램을 실행하면 이렇게 정리됩니다.

정리 후:
my_folder/
    txt/
        file1.txt
        file4.txt
    jpg/
        file2.jpg
    pdf/
        file3.pdf

 

 

2. 필요한 Python 라이브러리

이 프로그램에서는 다음 두 가지 라이브러리를 사용합니다:

  • os: 파일과 폴더를 다루는 기본 라이브러리입니다.
  • shutil: 파일을 이동하거나 복사하는 데 사용됩니다.

Python에 기본으로 포함된 라이브러리이므로 별도로 설치할 필요는 없습니다.

 

3. 코드 작성

import os  # 파일과 폴더를 다루는 라이브러리
import shutil  # 파일을 이동하는 데 필요한 라이브러리

# 1. 정리할 폴더 경로를 입력받습니다.
folder_path = input("정리할 폴더의 경로를 입력하세요: ")

# 2. 폴더가 존재하는지 확인합니다.
if not os.path.exists(folder_path):
    print("입력한 경로가 존재하지 않습니다. 프로그램을 종료합니다.")
    exit()

# 3. 폴더 안의 파일 목록을 가져옵니다.
files = os.listdir(folder_path)  # 폴더 안의 모든 파일과 폴더 이름을 리스트로 반환
print(f"총 {len(files)}개의 항목을 발견했습니다.")

# 4. 파일을 확장자별로 정리합니다.
for file in files:
    file_path = os.path.join(folder_path, file)  # 파일의 전체 경로 생성

    # 파일이 아닌 경우(폴더 등)는 건너뜁니다.
    if not os.path.isfile(file_path):
        continue

    # 파일의 확장자를 가져옵니다.
    _, extension = os.path.splitext(file)  # 파일명과 확장자를 분리
    extension = extension[1:]  # 확장자에서 '.' 제거 (예: '.txt' -> 'txt')

    # 확장자가 없는 파일은 '기타' 폴더로 분류합니다.
    if not extension:
        extension = "기타"

    # 확장자 이름의 폴더 생성 (이미 존재하면 무시)
    target_folder = os.path.join(folder_path, extension)
    if not os.path.exists(target_folder):
        os.makedirs(target_folder)  # 폴더 생성

    # 파일을 해당 폴더로 이동
    shutil.move(file_path, target_folder)
    print(f"{file} -> {extension}/ 폴더로 이동 완료")

print("파일 정리가 완료되었습니다!")

 

(1) os와 shutil 라이브러리 활용

  • os.listdir(folder_path): 지정된 폴더 안의 파일과 폴더 목록을 가져옵니다.
  • os.path.isfile(file_path): 파일인지 확인합니다.
  • os.makedirs(target_folder): 폴더를 생성합니다.
  • shutil.move(file_path, target_folder): 파일을 새 폴더로 이동합니다.

(2) 확장자 추출

  • os.path.splitext(file): 파일명과 확장자를 분리합니다.
    예: "file1.txt"  ("file1", ".txt")
  • extension[1:]: 확장자에서 .을 제거합니다.
    예: ".txt"  "txt"

(3) 기타 파일 처리

확장자가 없는 파일은 "기타"라는 폴더로 이동합니다.

 

 

4. 실행 방법

1. Python이 설치되어 있는지 확인합니다.

2. 위 코드를 복사해 Python 파일로 저장합니다. 예를 들어, file_organizer.py로 저장합니다.

3. 터미널(또는 명령 프롬프트)에서 다음 명령어를 실행합니다.

python file_organizer.py

4. 프로그램이 실행되면 정리할 폴더 경로를 입력합니다.
예: C:\Users\사용자명\Downloads