[중급 7편] 파이썬으로 폴더 만들기 & 파일 자동 정리.zip
이번 편은 파이썬 중급자라면 꼭 익혀야 할 **파일/폴더 자동화**입니다.
단순한 파일 복사부터, 폴더 생성, 이름 일괄 변경, 파일 이동까지
**반복작업을 자동으로 처리하는 실전 스킬**을 다룹니다.
✅ 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 자동 분석 & 백업 정리** 실전편으로 연결됩니다.