본문 바로가기
아래아한글 자동화/python+hwp 입문

1-4. 한/글 파일을 저장하기

by 회사원코딩 2022. 10. 8.
# import win32com.client as win32
# hwp = win32.gencache.EnsureDispatch("hwpframe.hwpojbect")
# hwp.XHwpWindows.Item(0).Visible = True

# 텍스트 입력 후

저장경로 = "c:\\users\\smj02\\desktop\\asdf.hwp"
hwp.SaveAs(저장경로)

# 텍스트 수정 후

hwp.Save()

작성한 문서를 저장하려면 일반적으로 hwp 오브젝트의 Save 메서드를 실행하면 됩니다.

단, 새 문서를 열어서 편집한 경우에는 hwp.Save()를 실행해도 저장이 되지 않고 False를 리턴합니다.

저장할 경로와 파일이름이 지정되어 있지 않기 때문입니다.

새 문서를 열었을 경우, 혹은 다른 이름으로 저장하는 경우에는 SaveAs 메서드를 실행해야 합니다. (8번라인)

괄호 안에 파라미터로 저장할 경로와 파일명까지 따옴표로 감싸서 입력하면 됩니다.

파이썬 문자열 안에서 역슬래시(\)는 특별한 기능(탈출문자열)을 담당하는 글자라서,

탈출문자열의 간단한 예로, "\n"은 줄바꿈, "\t"는 탭을 나타내는 문자로 인식됩니다.

하위경로를 나타내는 기호로 역슬래시를 사용할 때에는

위의 화면처럼 두 개의 역슬래시를 겹쳐서 사용해야 합니다.

역슬래시를 하나씩만 사용해서 파일 경로를 입력할 경우

아래와 같은 문법 오류가 발생합니다.

이밖에도 경로를 입력할 때 오류가 나지 않게 하려면

위에서처럼 경로를 표시할 때 역슬래시를 두 번씩 입력하는 방법 외에도,

따옴표 앞에 소문자 r을 붙여서

역슬래시(\)를 특수문자로 사용하지 않고 일반 문자열로만 인식하게 하는 방법,

또는 역슬래시(\) 대신 슬래시(/)를 사용하는 방법으로도 경로를 표기할 수 있습니다.

필요에 따라 적절한 방법을 골라 사용하시면 됩니다.

예를 들어 윈도우 탐색기에서 파일경로를 복사한 경우라면
경로문자열 앞에 r을 붙여 raw string으로 처리하는 방법이 가장 간편하겠지요.

이렇게 다른 이름으로 문서를 저장한 이후나,

저장되어 있는 문서를 열었을 경우에는

간단히 hwp.Save()만 실행해도 문서를 저장할 수 있게 됩니다.

만약 문서내용이 변경되지 않은 경우라면
hwp.Save()를 입력해도 저장을 실행하지 않습니다. (그리고 False를 리턴합니다.)
이는 Save 메서드의 인자값이 이렇게 작동하도록 설정되어 있기 때문입니다.
수정을 하지 않은 경우라도 강제로 저장을 하고 싶다면
hwp.Save(False) 또는 hwp.Save(save_if_dirty=False)라고 입력하면 됩니다.

 

반응형

댓글0