개발자 포럼에 올라와 있던 코드를 그대로 사용중이었는데요!
특정 한글 파일(10개 중에 1개 꼴로) 텍스트 추출 코드 동작 시 빠져나오지 못하고 무한루프를 돌아 버리더라고요.
다음 코드에서 그런 문제가 발생할 원인이 될만한 곳이 있나요?
import re
def extract_text_exclude_table(hwp):
txt = ""
try:
# 문서 전체를 텍스트 포함 모든 컨트롤을 탐색함
hwp.InitScan(0x000F, 0x0077)
while True:
textdata = hwp.GetText()
if textdata[0] == 1:
break
# 201 = moveScanPos로 GetText 실행한 위치로 이동함
hwp.MovePos(201, 0, 0)
# 현재 위치의 상위 컨트롤을 구함
parent_ctrl = hwp.ParentCtrl
if parent_ctrl == None: # 일반 문장(paragraph)
txt = txt + textdata[1]
txt.split("\r\n")
continue
ctrlch = parent_ctrl.CtrlCh
# 11 = 그리기 개체, 표
if ctrlch == 11:
# 상위 컨트롤이 '표'
if parent_ctrl.CtrlID == "tbl":
continue
txt = txt + textdata[1]
finally:
hwp.ReleaseScan()
return re.sub(r'(\n\s*){3,}', '\n\n\n', txt)
아니면 추출이 안되는 특정 한글 파일에 문제일까요?