chanitools

파이썬으로 파일명 일괄 변경하기

으뜸아빠 2025. 8. 1. 08:01
728x90
반응형

 

 

 

 

 

"파일명 정리가 이렇게 귀찮을 줄이야..." 한 번에 해결

📁 수백 개 파일명을 클릭 몇 번으로 깔끔하게 정리하세요

컴퓨터를 사용하다 보면 파일명이 엉망진창으로 되어있는 경우가 많습니다. "IMG_001 (복사본).jpg", "문서 최종 최종2.docx", "사진 - 복사본 (2).png" 같은 파일명들을 보면 정말 답답하죠. 하나씩 수정하기에는 너무 많고, 규칙적으로 바꾸고 싶은데 방법을 모르겠고... 파일명 변환기는 이런 고민을 한 번에 해결해주는 도구입니다. 여러 파일을 한 번에 선택하고, 원하는 규칙을 선택하면 모든 파일명이 깔끔하게 정리되어서 ZIP 파일로 다운로드됩니다!

 

 

파일 선택 버튼으로 간편한 파일 업로드

🎯 한 번에 수백 개 파일도 문제없이 처리

대형 파일 선택 버튼을 누르면 파일 탐색기가 열리고, 여기서 Ctrl+클릭이나 Shift+클릭으로 여러 파일을 동시에 선택할 수 있습니다. 이미지, 문서, 압축파일 등 어떤 종류의 파일이든 상관없어요. 파일 내용을 수정하는 게 아니라 파일명만 바꾸는 것이니까 모든 파일 형식을 지원합니다. 업로드가 완료되면 실시간으로 진행 상황을 보여주고, 파일 크기와 확장자 정보도 함께 표시됩니다. 업로드 중에도 언제든지 "파일 추가" 버튼으로 추가로 파일을 더 올릴 수 있어서 정말 편리해요

 

 

 

체크박스만 클릭하면 즉시 적용

🛠️ 공백 처리, 대소문자, 문자 필터링까지

간편 수정 탭에서는 자주 사용하는 변환 옵션들을 체크박스로 제공합니다. 공백 제거, 공백을 언더스코어로 변환, 앞뒤 공백 제거, 연속 공백을 하나로 정리하는 기능이 있어요. 대소문자 변환도 소문자, 대문자, 첫글자만 대문자, 단어별 대문자로 선택할 수 있습니다. 특수문자 제거나 한글만 남기기, 영문만 남기기, 숫자만 남기기 같은 문자 필터링 기능도 있고요. 각 옵션들은 상호 배타적으로 작동해서 실수로 이상하게 변환될 걱정이 없습니다.

 

 

모든 파일명에 공통 텍스트 추가하거나 특정 문자열 교체

📝 입력 후 엔터를 누르면 바로 적용

접두사/접미사 탭에서는 모든 파일명 앞이나 뒤에 원하는 텍스트를 추가할 수 있습니다. 예를 들어 "NEW_"를 접두사로 설정하면 모든 파일명 앞에 "NEW_"가 붙어요. 찾기/바꾸기 탭에서는 특정 문자열을 다른 문자열로 일괄 교체할 수 있습니다. "old"를 "new"로 바꾸고 싶다면 찾을 텍스트에 "old", 바꿀 텍스트에 "new"를 입력하고 엔터를 누르면 됩니다. 간단하지만 정말 유용한 기능들이에요

 

 

자동 순번 매기기와 현재 날짜/시간 추가

🔢 시작 번호, 자릿수, 위치까지 세밀한 설정

번호매기기 기능은 시작 번호, 자릿수, 위치, 구분자까지 설정할 수 있습니다. 시작 번호를 1로, 자릿수를 3으로 설정하면 "001, 002, 003" 형태로 만들어져요. 구분자를 "_"로 하고 위치를 뒤에로 설정하면 "파일명_001" 형태가 됩니다. 날짜/시간 추가 기능으로는 "YYYYMMDD", "YYYY-MM-DD", "MMDD" 형식으로 현재 날짜를 파일명에 포함시킬 수 있고, 시간도 "HHMMSS", "HH-MM-SS", "HHMM" 형식으로 추가할 수 있습니다.

 

 

 

from pathlib import Path
import zipfile
import re
from nicegui import ui

class FileRenamer:
    def __init__(self):
        self.uploaded_files = []
        self.setup_ui()
    
    def apply_space_removal(self, filename):
        name_without_ext = Path(filename).stem
        extension = Path(filename).suffix
        
        if self.remove_spaces.value:
            name_without_ext = name_without_ext.replace(' ', '')
        
        return name_without_ext + extension
    
    def generate_zip_download(self):
        zip_buffer = io.BytesIO()
        with zipfile.ZipFile(zip_buffer, 'w') as zip_file:
            for file_info in self.uploaded_files:
                zip_file.writestr(
                    file_info['new_name'], 
                    file_info['content']
                )
        
        ui.download(zip_buffer.getvalue(), 'renamed_files.zip')

 

 

 

GitHub - zauberzeug/nicegui: Create web-based user interfaces with Python. The nice way.

Create web-based user interfaces with Python. The nice way. - zauberzeug/nicegui

github.com

 

NiceGUI와 Python의 조합으로 만든 웹 도구

⚙️ 복잡한 파일 처리 로직을 간단한 웹 인터페이스로

파일명 변환기는 Python의 pathlib, zipfile, re 모듈과 NiceGUI를 조합해서 만들었습니다. Python으로 파일명 변환 로직을 구현하고, NiceGUI로 웹 인터페이스를 만들어서 브라우저에서 바로 사용할 수 있게 했어요 이런 로직이 웹 인터페이스 뒤에서 실행되면서 사용자는 클릭만으로 파일명 변환을 할 수 있습니다.

 

 

변환 결과를 미리 확인하고 개별 수정도 가능

👀 원본명과 새로운 파일명을 나란히 비교

옵션을 선택하면 즉시 변환 결과를 미리볼 수 있습니다. 파일 목록에서 원본 파일명과 변환될 파일명을 함께 보여줘서 원하는 대로 바뀌었는지 확인할 수 있어요. 마음에 들지 않으면 개별 파일명을 직접 수정할 수도 있고, 원본명 복원 버튼으로 처음 상태로 되돌릴 수도 있습니다. 파일 크기와 확장자 정보도 표시되어서 어떤 파일인지 쉽게 구분할 수 있어요

 

 

변환 완료 후 ZIP으로 한 번에 다운로드

📦 원본 파일 내용은 그대로, 파일명만 깔끔하게

모든 변환이 완료되면 다운로드 버튼을 누르면 됩니다. 변환된 파일들이 ZIP 파일로 압축되어서 한 번에 다운로드되어요. 원본 파일의 내용은 전혀 바뀌지 않고 파일명만 바뀌니까 안전합니다. ZIP 파일명에는 생성 시간이 자동으로 포함되어서 언제 만든 건지 구분할 수 있고, 다운로드 중에는 실시간으로 진행 상황을 보여줍니다.

 

 

 

더 편리하게 사용하는 방법

💡 파일명 정리할 때 알아두면 좋은 것들

파일명을 정리할 때는 일관성이 중요합니다. 공백보다는 언더스코어나 하이픈을 사용하는 게 좋고, 특수문자는 가급적 피하는 게 안전해요. 번호매기기를 할 때는 나중에 파일이 추가될 걸 생각해서 자릿수를 넉넉하게 설정하세요. 변환 전에는 미리보기로 확인하고, 원본명 복원 버튼으로 언제든 되돌릴 수 있으니 부담 없이 여러 옵션을 시도해보세요. 파일 내용은 전혀 바뀌지 않고 이름만 바뀌는 거니까 안전하게 사용할 수 있습니다!

👉 파일명 변환기 바로 가기: https://www.eddmpython.com/utils/fileRenamer

 

파일명 변환기 - 스마트한 일괄 파일명 변경

여러 파일의 이름을 드래그앤드롭으로 업로드하고 12가지 옵션으로 스마트하게 일괄 변경하세요. 공백 제거, 대소문자 변환, 특수문자 처리 등 강력한 기능 지원

eddmpython.com

 

728x90
반응형