[자동화#1] 파일 이름 일괄 변경 (사진 정리 필수 루틴)

[자동화#1] 파일 이름 일괄 변경 (사진 정리 필수 루틴)

한줄 요약:
수십 장의 사진이나 문서 이름을 하나하나 바꾸는 건 고통이야 😫
👉 파이썬으로 한 번에 자동 이름 바꾸기!


1. 목표

  • 폴더 안의 파일 이름을 규칙적으로 한 번에 변경
  • 예: IMG_001.jpg, IMG_002.jpg
  • 확장자는 그대로 유지하고, 번호 자동 증가

2. 완성 코드 (복붙)

# 파일 이름 일괄 변경 스크립트
import os

def rename_files(folder_path, prefix="file", start_num=1):
    """
    folder_path : 폴더 경로
    prefix      : 새 파일 이름 접두사
    start_num   : 시작 번호
    """
    files = os.listdir(folder_path)
    files = [f for f in files if os.path.isfile(os.path.join(folder_path, f))]

    print(f"총 {len(files)}개의 파일을 변경합니다...")

    for i, filename in enumerate(files, start=start_num):
        # 확장자 분리
        name, ext = os.path.splitext(filename)
        new_name = f"{prefix}_{i:03d}{ext}"  # 예: file_001.jpg
        src = os.path.join(folder_path, filename)
        dst = os.path.join(folder_path, new_name)
        os.rename(src, dst)
        print(f"{filename} → {new_name}")

    print("✅ 파일 이름 변경 완료!")

# 사용 예시
if __name__ == "__main__":
    folder = input("변경할 폴더 경로를 입력하세요: ")
    prefix = input("새 파일 이름 접두사를 입력하세요 (기본값: file): ") or "file"
    start = input("시작 번호를 입력하세요 (기본값: 1): ")
    start = int(start) if start else 1
    rename_files(folder, prefix, start)

3. 사용 방법

1️⃣ 위 코드를 rename_files.py로 저장
2️⃣ 터미널(또는 명령 프롬프트)에서 실행:

python rename_files.py

3️⃣ 폴더 경로 입력 → 접두사 입력 → 시작번호 입력
4️⃣ 결과 예시:

photo1.jpg → trip_001.jpg  
photo2.jpg → trip_002.jpg  
photo3.jpg → trip_003.jpg  

4. 주요 포인트

함수역할
os.listdir()폴더 내 파일 목록 불러오기
os.path.splitext()이름과 확장자 분리
os.rename(기존, 새이름)파일 이름 변경
enumerate()자동으로 번호 매기기

5. 예제 응용: 특정 확장자만 변경

for f in files:
    if f.lower().endswith(".jpg"):  # JPG만 변경
        ...

🪄 이렇게 하면 .jpg 파일만 대상으로 변경돼요!


6. 예제 응용 2: 공백 제거 + 소문자 변환

for f in files:
    new_name = f.replace(" ", "_").lower()
    os.rename(os.path.join(folder_path, f),
              os.path.join(folder_path, new_name))

📸 예시
My Photo.JPGmy_photo.jpg


7. 주의사항

상황문제해결
동일한 이름 존재덮어쓰기 오류prefix나 시작번호 조정
한글 경로 오류인코딩 문제os.chdir(folder_path)로 경로 변경
폴더 경로 틀림파일 없음올바른 절대경로 입력 (C:\\Users\\...)

8. 연습문제

1️⃣ .png 파일만 골라 image_001.png, image_002.png 식으로 바꾸기
2️⃣ 접두사 입력 대신 오늘 날짜 + 번호 형태로 이름 짓기

import datetime
prefix = datetime.date.today().strftime("%Y%m%d")

➡️ 20251104_001.jpg 같은 이름으로 저장됨!


이전 강좌 👈 [예제#3] 비밀번호 생성기: 안전한 랜덤 패스워드 만들기
다음 강좌 👉 [자동화#2] 폴더에서 특정 확장자만 모으기 (문서/사진 분류 자동화)

댓글 남기기

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.