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

정성봉님의 프로필 이미지
정성봉

작성한 질문수

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

win32 을 중복 import, 글상자 입력

해결된 질문

작성

·

36

·

수정됨

1

항상 성실한 답변에 감사드립니다. 오늘도 난관에 봉착했습니다 ㅠㅠ

1. 엑셀도 win32 로 불러들여야 해서, 아래와 같이 하려면 중복(순환로딩)에 대한 문구가 뜨던데요.
좋은 방법이 있을까요?

 

from pyhwpx import Hwp 
import win32com.client as win32


2. textbox (글상자)를 하나 열고 글상자에 텍스트를 넣고 빠져나오려면 어떻게 해야할까요?

답변 1

1

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

1. 중복순환 문구 오류

중복순환 문구는 오류가 아닌 단순한 Warning이라서 무시하셔도 됩니다.

경우에 따라 출력이 되기도 하고 안 되기도 하고요ㅜ

다만, 콘솔에 오류메시지가 뜨는 게 불편하시면

 

① 임포트 순서 바꿔보기
pyhwpx에는 Circular Import 관련 메시지를 출력하지 않게 하는 코드가 포함되어 있기 때문에

win32com 임포트를 먼저 실행한 후 pyhwpx를 임포트하면 아마 메시지가 뜨지 않을 듯 합니다.

혹시 이 방법으로 해결이 되지 않는다면,

 

② 오류메시지 출력을 콘솔이나 터미널에 뜨지 않게 하는 샘플코드

# CircularImport 오류 출력안함
devnull = open(os.devnull, 'w')
old_stdout = sys.stdout
old_stderr = sys.stderr
sys.stdout = devnull
sys.stderr = devnull

try:
    import win32com.client as win32
finally:
    sys.stdout = old_stdout
    sys.stderr = old_stderr
    devnull.close()

임포트문 위아래로 이 코드를 추가해 두시면,

순환임포트 관련 경고메시지가 뜨지 않을 겁니다.

 

2. 글상자에 텍스트 넣고 빠져나오기

사실 저는 API로 글상자를 생성하는 방법을 모릅니다ㅜ

이게 버그인지, 제가 이해를 못 한 것인지는 모르겠는데ㅜㅜㅜ

 

하여튼 생성은 할 줄 모르지만, 대안이 두 가지 있습니다.

① 1x1의 표를 글자처럼 취급 해제하고, 글상자처럼 사용하기(위치나 크기, 채우기 등 수정 가능)

② 글상자 생성은 어렵지만 수정은 자유롭게 가능하므로,

미리 글상자가 한 개 들어있는 문서를 만들어놓고,

끼워넣기 후 편집하기

 

등의 방법이 있습니다.

(참고 : https://blog.naver.com/pythonrpa/223478779839)

 

글상자 안에도 동일하게 필드 삽입이 가능하므로

미리 필드를 넣어놓고 put_field_text를 활용하시면 좋겠습니다.

 

글상자를 생성하는 방법을 알게 되면

꼭 성봉님께 공유드리도록 하겠습니다.

 

행복한 하루 되세요!

 

정성봉님의 프로필 이미지
정성봉
질문자

  1. 넵 알겠습니다.

     

  2. 방법이 없군요! 테이블을 사용하겠습니다.

    여기저기 검색하고 chatgpt 랑도 열심히 싸워봤는데 속성에 있지도 않은 해결책을 자꾸 줘서 ㅎㅎㅎ 힘들었습니다.



    오늘도 너무너무 감사드립니다 (__)

     

정성봉님의 프로필 이미지
정성봉

작성한 질문수

질문하기