PYTHON/중급학습

[중급 7편] 파이썬으로 폴더 만들기 & 파일 자동 정리.zip

Kim.Sung 2025. 5. 14. 11:53

이번 편은 파이썬 중급자라면 꼭 익혀야 할 **파일/폴더 자동화**입니다.  
단순한 파일 복사부터, 폴더 생성, 이름 일괄 변경, 파일 이동까지  
**반복작업을 자동으로 처리하는 실전 스킬**을 다룹니다.


✅ 1. 왜 파일 자동화가 중요한가?

- 매번 수동으로 파일 이름 바꾸고, 폴더 만들고… 너무 번거롭죠?  
- 파이썬은 `os`, `shutil`, `pathlib`만 알면 폴더 정리, 백업, 이미지 리네이밍 등 자동화 가능  
- 특히 데이터 분석, 보고서 정리, 사진 폴더 관리에 매우 유용

✅ 2. os 모듈로 폴더 생성, 이름 변경, 존재 확인까지

import os

# 폴더 만들기
folder_name = "results"
if not os.path.exists(folder_name):
    os.makedirs(folder_name)

# 현재 디렉토리 안의 모든 파일 목록 가져오기
files = os.listdir(".")

# 특정 확장자만 골라서 이름 바꾸기
for idx, file in enumerate(files):
    if file.endswith(".txt"):
        os.rename(file, f"document_{idx+1}.txt")

📌 os 모듈 요약  
- os.makedirs() → 상위 폴더까지 생성  
- os.rename() → 이름 변경  
- os.listdir() → 디렉토리 목록 불러오기

✅ 3. shutil 모듈로 파일 복사 & 이동 처리

import shutil

# 파일 복사
shutil.copy("document_1.txt", "results/document_1_backup.txt")

# 폴더 전체 복사
shutil.copytree("images", "images_backup")

# 파일 이동
shutil.move("document_2.txt", "results/")

📌 shutil 요약  
- copy() = 파일 복사  
- copytree() = 폴더 전체 복사  
- move() = 파일 이동 또는 이름 변경 효과

✅ 4. pathlib 모듈 – 객체 기반 경로 관리

from pathlib import Path

folder = Path("logs")
folder.mkdir(exist_ok=True)

# 특정 확장자 탐색
for file in folder.glob("*.log"):
    print("파일명:", file.name)

📌 pathlib 장점  
- Path 객체 기반 → 가독성 뛰어남  
- .glob(), .suffix, .stem 등 다양한 속성 활용 가능

✅ 5. 실전 예시 – 이미지 정리 자동화

import os

src_folder = "raw_images"
dst_folder = "sorted_images"

os.makedirs(dst_folder, exist_ok=True)

for idx, file in enumerate(os.listdir(src_folder)):
    if file.endswith(".jpg"):
        src = os.path.join(src_folder, file)
        dst = os.path.join(dst_folder, f"image_{idx+1}.jpg")
        os.rename(src, dst)

🎯 결과: raw_images 폴더에 있던 모든 .jpg 파일이  
→ sorted_images 폴더로 이동 + 이름 자동 정리 완료

✅ 모듈별 기능 비교 요약

작업 | os | shutil | pathlib  
----|----|--------|---------
폴더 생성 | ✅ | ❌ | ✅  
파일 복사 | ❌ | ✅ | ❌  
파일 이동 | ⭕ (rename) | ✅ | ✅ (rename 사용)  
파일 목록 | ✅ | ❌ | ✅ (.glob())

✅ 마무리 요약

- os: 가장 기본적인 경로, 이름 제어
- shutil: 복사·이동 중심의 실무형 기능
- pathlib: 최신 코드 스타일, 가독성과 유지보수에 탁월

폴더 자동 정리, 일괄 이름 변경, 백업 폴더 만들기…  
이제 수작업 하지 마세요. 파이썬이면 다 됩니다.

다음 중급 8편에서는 이 흐름을 이어  
**CSV 자동 분석 & 백업 정리** 실전편으로 연결됩니다.