강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

hoseok.h.lee님의 프로필 이미지
hoseok.h.lee

작성한 질문수

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

본문을 각주로 내리는 법

해결된 질문

작성

·

21

1

안녕하세요. 강의 잘 듣고 있습니다.

강의 수강하면서 질문이 하나 있는데요.

지금 제 상황은

  1. 1차적으로 출처를 각주에 적지 않음

  2. 그냥 본문뒤에 (출처:)를 적는 식으로 통일함

    1. 예시) 한글 공부가 너무 어렵네요 (출처: 내 머릿속)

  3. 이제 최종적으로 "(출처:" 로 시작해서 ")"로 끝나는 모든 문장을 각주로 넣고 싶음

입니다.

그러면 생각나는 아이디어로는 "(출처:" 로 시작해서 ")"로 끝나는 문장마다

해당 지점에서 각주를 추가하고 복사 후 원래 문장은 지우는 방식으로 반복을 해야 할 것 같은데요.

 

그런데 혼자 씨름해봐도 쉽지가 않네요.

혹시 어떤 함수를 사용해야할지 도움 주시면 감사하겠습니다.

완벽한 코드가 아니더라도, 어떻게 사용할지 아이디어라도 주시면 제가 해결하겠습니다!

제가 필요한 부분만 수강중인지라, 제목에서 저와 상관없다고 하는 기능은 안 들어서 혹시 설명해주신 강의가 있다면 제목 말씀해주시면 수강하겠습니다.

답변 1

1

일코님의 프로필 이미지
일코
지식공유자

호석님 안녕하세요?

답변이 늦었습니다.

질문 주신 내용에 대한 특정 챕터가 있지는 않습니다.

본 답변에 최대한 구체적으로 설명을 드리고자 합니다.

만약 이해가 잘 안 되는 부분이 있다면 추가질문 주시기 바랍니다.

여러가지 방법이 생각나지만, 그래도 제가 가장 효율적이라고 생각하는 방법은

"찾기"를 활용하는 것입니다.

단, 각주로 바꿀 구간의 마지막에만 닫는 괄호가 있어야 합니다.

(이런 제한조건을 두지 않는다면 굉장히 많은 분량의 예외처리를 해야 하는데 그게 참 어렵습니다.)

그리고, win32com 대신 이를 조금 보완한 파이썬 모듈인 pyhwpx 를 사용하겠습니다.

 

예시로,

image.png

위와 같은 문서가 있을 때,

"찾기" 기능을 통해 (출처: 를 찾으면 아래와 같이 선택이 됩니다. [아래 영상 참고]

녹화_2025_12_24_12_10_32_735.gif

이를 조금 응용하여, 조건식 사용을 활성화하고

\(출처:.+\)를 찾으면 각주로 빼낼 구간을 전부 선택할 수 있습니다.

중간의 .+는 아무 글자들을 뜻하는 와일드카드 같은 정규식 문법입니다. [아래 영상 참고]

녹화_2025_12_24_12_12_00_628.gif

 

그럼 해당 구간을 잘라낸 후, 각주삽입 명령 실행, 붙여넣기를 하면 해당 구간이 각주로 변경되고,

결국 이를 while문으로 반복하기만 하면 됩니다.

 

아래 시연화면과 전체 예시코드를 보여드리겠습니다.

녹화_2025_12_24_12_22_12_571.gif

 

코드는 아래와 같습니다.

from pyhwpx import Hwp


hwp = Hwp()
# hwp.open("편집할_파일경로.hwp")

hwp.MoveDocBegin()  # 문서 처음으로 이동
while hwp.find(r"\(출처:.+\)", regex=True):  # 정규식 찾기(찾으면 True 리턴) 반복
    endnote = hwp.GetTextFile("HWPML2X")  # 각주로 바꿀 부분 추출
    hwp.Delete()  # 삭제
    hwp.InsertFootnote()  # 각주생성
    hwp.SetTextFile(endnote)  # 각주삽입
    hwp.CloseEx()  # 각주에서 빠져나오기

 

중간의 HWPML2X는, 특정 내용을 추출할 때 제가 애용하는 포맷(XML)의 문자열입니다.

 

도움이 되었길 바랍니다.

행복한 하루 되세요^^

hoseok.h.lee님의 프로필 이미지
hoseok.h.lee

작성한 질문수

질문하기