본문 바로가기
컴퓨터 TIP

여러 문자 한번에 치환하기

by 두유노우컴퓨터 2025. 5. 3.

장문의 문장에서 내가 원하는 문자로 치환을 하기 위해선 바꾸기 명령을 통해 단순 바꾸기가 가능하지만, 다수의 치환할 문자가 있을 경우에는 아래와 같은 방법이 효과적이다.

 

1. 노트패드 설치

 

https://notepad-plus-plus.org/downloads/

 

Downloads | Notepad++

 

notepad-plus-plus.org

 

2. 플러그인에서 Python Script 설치

 

Python Script 플러그인을 설치하면, Python 언어로 자동화 스크립트를 작성하여 여러 문자열 치환을 한 번에 실행할 수 있다.

PythonScript 플러그인 설치

 

3. 플러그인 콘솔창 및 버전 확인

 

Python 3을 별도로 설치해도, Notepad++ 플러그인은 기본적으로 Python 2.7을 사용한다. 코드 작성 시 Python 2.7 문법에 맞춰 스크립트 작성하는 게 가장 안전하다. 스크립트 동작 중 콘솔창을 보면 오류 및 결과 로그를 확인 가능하다. 물론 콘솔 창이 없더라도 스크립트를 실행 시 콘솔 창이 자동 활성화 된다.

Show Console 활성화

 

4. 스크립트 코드 작성

 

파이썬 2.7 기준으로 코드를 작성한다. 파일명은 한글로 할 경우 실행되지 않으므로, 영어 이름으로 만들어준다. 치환 문자는 " " 로 묶거나 ' ' 로 묶어주면 된다. 만약 " 문자를 바꾸고 싶을 때 백슬래시를 써서 " \" " 또는 ' " ' 이런 형태로 만들어 주면 된다.

# -*- coding: utf-8 -*-
console.show()
console.clear()

try:
    replacements = {
        '“': '"',
        '”': '"',
        '‘': "'",
        '’': "'",
        '·': '/',
        ': ': ' : ',
        '→': '->'
    }

    console.write("치환 시작...\n")

    editor.beginUndoAction()
    for find_text, replace_text in replacements.items():
        count = 0
        start_pos = 0
        while True:
            # findText(검색 옵션, 시작, 끝, 찾을 문자열)
            pos = editor.findText(0, start_pos, editor.getTextLength(), find_text)
            if pos is None:
                break
            start, end = pos
            editor.setTargetStart(start)
            editor.setTargetEnd(end)
            editor.replaceTarget(replace_text)
            start_pos = start + len(replace_text)  # 다음 검색 위치로 이동
            count += 1
        console.write("%s → %s | %d회 치환됨\n" % (find_text, replace_text, count))
    editor.endUndoAction()

    console.write("전체 치환 완료되었습니다.\n")
except Exception as e:
    console.write("에러 발생: %s\n" % str(e))

 

5. 경로에 이동 후 재실행

 

아래 경로에 파일을 이동 시키고 노트패드를 재시작하면 스크립트가 보인다.

C:\Users\[사용자]\AppData\Roaming\Notepad++\plugins\config\PythonScript\scripts