파일들이 뒤죽박죽 엉켜 있진 않으신가요?
오늘은 파이썬으로 파일들을 자동으로 종류별로 정리해주는 프로그램을 만들어보고, 실제 테스트도 해보겠습니다.
목차
1. 어떤 프로그램인가요?
파이썬의 os
와 shutil
표준 라이브러리를 사용해, 지정한 폴더 안의 파일들을 확장자에 따라 자동으로 분류합니다.
- 이미지, 문서, 압축파일, 음악 등 카테고리별 정리
- 정리 기준은 확장자이며, 기타는 별도 처리
- 중복되는 폴더가 자동 생성되고 파일이 이동됩니다
2. 테스트용 더미 파일 생성기
먼저, 자동 정리 기능을 실험하기 위해 다양한 확장자의 더미 파일을 생성해봅니다.
import os
import random
import string
dummy_folder = r"C:\Users\seonggyu\Desktop\dummy_test"
os.makedirs(dummy_folder, exist_ok=True)
dummy_files = {
"이미지": [".jpg", ".png", ".gif"],
"문서": [".pdf", ".docx", ".txt", ".xlsx"],
"압축": [".zip", ".rar"],
"영상": [".mp4", ".avi"],
"음악": [".mp3", ".wav"],
"기타": [".dat", ".bak", ".tmp"]
}
def random_filename(length=8):
return ''.join(random.choices(string.ascii_letters + string.digits, k=length))
for category, extensions in dummy_files.items():
for ext in extensions:
for _ in range(3):
filename = random_filename() + ext
filepath = os.path.join(dummy_folder, filename)
with open(filepath, "w") as f:
f.write(f"This is a dummy {category} file: {filename}\n")
print("테스트용 더미 파일 생성 완료.")
위 코드를 실행하면 다양한 파일이 담긴 dummy_test
폴더가 생성됩니다.
테스트를 위한 더미 파일들 만들었습니다. 아래 사진에서 확인 가능합니다.
3. 파일 자동 정리기 코드
이제 본격적으로 파일을 정리하는 코드를 작성합니다. 대상 폴더를 dummy_test
로 지정하면 실험도 쉽게 할 수 있습니다.
import os
import shutil
target_folder = r"C:\Users\seonggyu\Desktop\dummy_test"
categories = {
"이미지": [".jpg", ".jpeg", ".png", ".gif", ".bmp"],
"문서": [".pdf", ".docx", ".doc", ".hwp", ".txt", ".xlsx"],
"프로그램": [".exe", ".msi"],
"압축파일": [".zip", ".rar", ".7z"],
"영상": [".mp4", ".avi", ".mkv", ".mov"],
"음악": [".mp3", ".wav", ".flac"],
"기타": []
}
def organize_files(folder_path):
files = os.listdir(folder_path)
for file in files:
file_path = os.path.join(folder_path, file)
if os.path.isfile(file_path):
ext = os.path.splitext(file)[1].lower()
moved = False
for category, ext_list in categories.items():
if ext in ext_list:
target_dir = os.path.join(folder_path, category)
os.makedirs(target_dir, exist_ok=True)
shutil.move(file_path, os.path.join(target_dir, file))
moved = True
break
if not moved:
other_dir = os.path.join(folder_path, "기타")
os.makedirs(other_dir, exist_ok=True)
shutil.move(file_path, os.path.join(other_dir, file))
print("파일 정리가 완료되었습니다.")
organize_files(target_folder)
4. 실행 결과
실행 전에는 파일이 모두 한 폴더에 섞여 있었지만, 코드 실행 후 아래처럼 깔끔하게 정리됩니다.
각 폴더 안에는 해당 확장자를 가진 파일들이 자동으로 이동되어 있습니다.
다운로드 폴더에 너무 많은 파일들이 섞여있어서 보기 힘들때 아주 유용한 코드입니다.
더 참신한 아이디어가 있다면 댓글로 알려주세요.
'개발 & 코딩' 카테고리의 다른 글
파이썬 for문과 리스트 기초부터 예제까지 (0) | 2025.06.22 |
---|---|
파이썬 if문과 while문 기초 및 실습 예제 (0) | 2025.06.21 |
Python OCR 이미지 텍스트 인식 성능 알아보기 (0) | 2025.06.19 |
AI 지뢰찾기 - Cursor와 Windsurf를 활용한 100x100 지뢰찾기 AI (0) | 2025.06.15 |
LG 인공지능 LLM 엑사원 EXAONE 3.5 설치 deepseek 간단 비교 (1) | 2025.06.15 |