이번 시간에는 파이썬을 이용하여 한글파일 내에 특정 문자열를 찾아 바꾸도록 해보겠습니다.

 

 

 

위 그림에서 보듯이 111.hwp 한글문서 내용입니다.

 

별 내용은 없고 여기에서 '박지성'이라고 표시된 문자열을 '손흥민'으로 바꾸어 보겠습니다.

 

코딩내용입니다.


먼저 파이썬 파일내에 한글을 쓰기 위한 구문을 추가합니다.

 

#_*_coding:cp949_*_

 

그리고 아래 문구를 한글 액티브액스(open API)를 불러오기 위하여 써줍니다.

 

import win32com.client as win32
hwp=win32.gencache.EnsureDispatch("HWPFrame.HwpObject")

 

그리고 111.hwp 한글파일을 열어줍니다.


hwp.Open('e:\\한글\\111.hwp',"HWP","forceopen:true")

 

그리고 모두 찾아 바꾸기를 하기 위해 명령은  "AllReplace"를 써줍니다.

 

hwp.HAction.GetDefault("AllReplace", hwp.HParameterSet.HFindReplace.HSet);

 

찾아 바꾸기에서 세부내용을 셋업해줘야 하는데요

 

"FindString" 속성에 찾을 문자열을 "ReplaceString" 속성에 새 문자열을 넣어줍니다.

 

option=hwp.HParameterSet.HFindReplace
option.FindString = "박지성"
option.ReplaceString =
"손흥민"

 

한글 파일에서  Ctrl+F 를 치면 나오는 대화상자에 아래와 같이 해주는 동작과 같습니다.

그리고 명령실행 시 "진짜 바꾸겠습니까?" 라든지 "총 12번 바꿨습니다" 라는 메시지 상자가 나오는데

 

이를 무시하기 위하여 아래 명령을 써줍니다.

 

option.IgnoreMessage = 1

 

그리고 실행해줍니다. 실행되면서 박지성이 손흥민으로 바뀝니다!!

 

hwp.HAction.Execute("AllReplace", hwp.HParameterSet.HFindReplace.HSet);

 

그리고 저장을 해주고 한글프로그램을 닫습니다. 끝~


hwp.Clear(3)
hwp.Quit()

 

수정된 한글파일을 다시 열어보면 짠~ 박지성이 손흥민으로 바뀌어져 있네요!!

 

보시고 궁금한 내용이 있으시면 댓글 부탁드립니다.

 

감사합니다.

 

 


#_*_coding:cp949_*_
import win32com.client as win32
hwp=win32.gencache.EnsureDispatch("HWPFrame.HwpObject")
hwp.Open('e:\\한글\\111.hwp',"HWP","forceopen:true")
hwp.HAction.GetDefault("AllReplace", hwp.HParameterSet.HFindReplace.HSet);
option=hwp.HParameterSet.HFindReplace
option.FindString = "박지성"
option.ReplaceString = "손흥민"
option.IgnoreMessage = 1
hwp.HAction.Execute("AllReplace", hwp.HParameterSet.HFindReplace.HSet);
hwp.Clear(3)
hwp.Quit()

 

+ Recent posts