안녕하세요
오늘은 한글파일 내에 존재하는 전화번호를 삭제하는 프로그램을 짜볼까 합니다.
하나의 한글파일이라면 수작업으로 전화번호를 삭제할 수 있겠지만
파일이 여러개이다 보면 많이 귀찮고 시간도 많이 걸리게 되죠
한글파일을 한 곳에 모아 놓고요 여기에서는 E:\접수 폴더에 넣어놨습니다.
파일을 열게되면
각종 정보가 들어가 있고 마지막에 연락처가 들어가 있습니다.
이 부분을 삭제하는 코드를 짜보도록 하겠습니다.
한글을 쓸 것이므로 아래 코드를 쓰고요
# -*- coding: cp949 -*-
한글 api 를 쓸 것이므로 아래 라이브러리를 불러와 줍니다.
import win32com.client as win32
그리고 폴더에 hwp를 검색할 수 있도록 아래 라이브러리도 불러와 줍니다.
import os
import fnmatch
한글객체를 불러와 주고요
hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject")
먼저 전화번호를 찾아야 되는데요
전화번호의 형식이 여러개가 있겠죠, 모두 다 써줍니다.
아래에서 ? 표시는 와일드카드로 어떤 숫자가 와도 찾겠다는 뜻 입니다.
data=["(0?-???-????)","(0?-????-????)","(0??-???-????)","(0??-????-????)","0?-???-????","0?-????-????","0??-???-????","0??-????-????"]
그리고 E:\접수 폴더에 있는 모든 hwp 파일을 filename 에 건네줍니다.
dir1=os.getcwd()
dir1="E:₩₩접수₩₩"
filename=fnmatch.filter(os.listdir(dir1),'*.hwp')
모든 파일을 돌면서
for file in filename:
파일을 열어줍니다.
hwp.Open(dir1+file, "HWP", "forceopen:true")
그리고 아래 코드에 따라서 '찾아 바꾸기'를 해줍니다.
hwp.HAction.GetDefault("AllReplace", hwp.HParameterSet.HFindReplace.HSet);
option=hwp.HParameterSet.HFindReplace
i=0
전화번호 형식에 걸리는 것을 모두 찾아서 빈칸으로 바꿔줍니다.
for j in data:
option.FindString = data[i];
option.ReplaceString = "";
option.IgnoreMessage = 1;
option.UseWildCards = 1;
hwp.HAction.Execute("AllReplace", hwp.HParameterSet.HFindReplace.HSet);
i = i + 1
저장하고 닫고요
hwp.Clear(3);
한글을 종료합니다.
hwp.Quit()
실행하면
폴더 내의 모든 파일 내 연락처가 삭제된 것을 확인하실 수 있습니다.
아래는 코드입니다.
참고바랍니다.
감사합니다.
# -*- coding: cp949 -*-
import win32com.client as win32
import os
import fnmatch
hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject")
#전화번호 정보
data=["(0?-???-????)","(0?-????-????)","(0??-???-????)","(0??-????-????)","0?-???-????","0?-????-????","0??-???-????","0??-????-????"]
dir1=os.getcwd()
dir1="E:₩₩접수₩₩"
filename=fnmatch.filter(os.listdir(dir1),'*.hwp')
for file in filename:
hwp.Open(dir1+file, "HWP", "forceopen:true")
hwp.HAction.GetDefault("AllReplace", hwp.HParameterSet.HFindReplace.HSet);
option=hwp.HParameterSet.HFindReplace
i=0
for j in data:
option.FindString = data[i];
option.ReplaceString = "";
option.IgnoreMessage = 1;
option.UseWildCards = 1;
hwp.HAction.Execute("AllReplace", hwp.HParameterSet.HFindReplace.HSet);
i = i + 1
hwp.Clear(3);
hwp.Quit()
'파이썬 > 한글 자동화' 카테고리의 다른 글
[파이썬] 한글파일 하나로 합치기 (3) | 2020.07.24 |
---|---|
[파이썬] 한글파일 내 그림 추출하기 (0) | 2020.07.22 |
[파이썬] 한글파일을 엑셀로 옮기기 (16) | 2020.07.20 |
[파이썬] 한글파일 내 특정 문자열 찾아 바꾸기 (0) | 2020.01.04 |
[파이썬] 파이썬으로 한글파일 프린트하기 (1) | 2019.12.25 |