inflearn logo
강의

Course

Instructor

Essential Python-Hwp Automation Recipes for Office Workers

Open, save, and close a Korean/English document

vscode 자동완성

228

memo77488422

7 asked

1

강사님 안녕하세요
강사님이 남기신 자료를 바탕으로 5~6년간 잘 공부하고 있다가 이번에 강의까지 수강하게 된 열혈 수강생입니다.

 

강의 내용이 매우 흡족하고 좋습니다.

한가지 궁금한 사항이 있어 글을 남깁니다.

vscode에서는 자동완성 기능이 있어

예를 들면 Path. 까지 타이핑하면 뒤에 자동으로 올 함수 등을 제시해 주는데

hwp = win32.gencache.EnsureDispatch('hwpframe.hwpobject')

생성한 hwp 객체에 hwp. 하면 뒤에 올 수 있는 것에 대한 자동완성이 작동하지 않습니다. 혹시 자동완성이 되도록 하는 방법이 있을까요?

 

매번 레퍼런스 찾기도 어렵고 대강 지식을 갖추고 나서 vscode의 도움으로 코드를 진행하고 싶은데 쉽지 않네요.. ^^
 

vscode 자동완성

Answer 1

2

ilco

안녕하세요? 회신이 늦었습니다^^;

제가 vscode에 익숙하지 않은 관계로,

분명 더 좋은 방법이 있을 수 있다는 점을 먼저 밝힙니다ㅜ

 

우선 아래 코드로 hwp 객체를 만들었다는 가정하에

import win32com.client as win32

hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.XHwpWindows.Item(0).Visible = True

hwp.까지 입력하시고 Ctrl-Space를 누르시면 자동완성 목록이 뜨잖아요?

근데 이게 모든 메서드와 프로퍼티가 뜨지 않습니다..

예를 들면 .CharShape은 뜨는데, hwp.XHwpWindows는 한 번에 뜨지 않고 타이핑을 한 후에야 뜬다든지,

hwp.XHwpWindows.이하로는 전혀 못 잡아주는 문제들..

 

녹화_2024_09_06_19_55_41_200.gif

이게 상당히 불편한 부분인데,

제가 자주 사용했던 세 가지 방법을 알려드려보겠습니다.

(기본적인 방법들이라 다 아시는 내용일 수 있어요ㅜ)

 

① dir() 사용하기

dir 함수로 아예 멤버 리스트를 확인해버리는 방법인데요.

아래와 같은 방식으로 사용합니다.

녹화_2024_09_06_19_59_36_373.gif

 

 

② hwp.a.b.c 를 d라는 변수에 넣고 자동완성

이것도 나름의 방법인데 될 때도 있고 안 될 때도 있는 것 같고 그래요....;

녹화_2024_09_06_20_01_28_890.gif

 

③ pyhwpx 모듈 사용

이건 자동완성을 보완하는 방법은 아니지만, 하여튼 추천드리는 방법입니다.

임포트하고 hwp인스턴스 생성하는 부분만 아래처럼 변경하시면,

나머지 인터페이스는 기존의 한/글 오토메이션API와 동일하므로 불편함 없이 사용하실 수 있을 겁니다.

hwp의 멤버들은 우선 거의 모두 자동완성으로 보여주는데요. (직접 매핑작업을 했기 때문입니다..)

from pyhwpx import Hwp

hwp = Hwp()
녹화_2024_09_06_20_06_19_191.gif

 

특히, 기존의 Run 액션들은 문자열을 통해 명령하는 방식 때문에 자동완성이 되지 않아 번거로운데

pyhwpx에서는 전부 동일한 이름의 메서드로 매핑해놓은 덕분에 자동완성이 됩니다.
(노가다의 산물ㄷㄷ)

 

예를 들어 hwp.HAction.Run("SelectAll")이라는 액션은 hwp.SelectAll()로 실행할 수 있기 때문에

자동완성으로 코드를 짜기 훨씬 수월한 편입니다.

녹화_2024_09_06_20_11_15_519.gif

 

④ 위에서 소개해드린 방법 이외에도,

사실... 파이참에서는 Ctrl-Shift-Space로 제법 잘 잡아주거든요...

(그래서 위 방법들을 대부분 쓰지 않습니다;)

녹화_2024_09_06_20_35_21_645.gif

좌: VSCode, 우:Pycharm Professional


분명 vscode에도 좀 더 똑똑한 자동완성 기능이 따로 있을 겁니다.

 

하여튼 이런 방법들이 있어요.

혹시 더 좋은 방법을 발견하면 즉시 댓글로 남겨두겠습니다.

도움이 되었기를 바랄게요ㅋ

 

강의 수강해주셔서 감사드립니다.

질문 많이 남겨주세요! 제가 아는 선에서 최대한 상세히 설명을 남겨놓겠습니다.

 

행복한 하루 되세요^^

2

memo77488422

상세하고도 성의있는 답변에 감사드립니다.

충분히 만족하고 선생님 답변 덕분에

많은 시간이 절약될 것 같습니다. ^^

yes24 수집 md 파일 만들 때

0

18

2

map API

0

36

1

nodejs 터미널 인식

0

38

1

프리젠테이션 도구

0

73

1

로그인 필수 사이트 정보 수집시

0

155

2

0201 데이터 수집을 위한 프롬프트 컨텍스트 문서 작성과 코드 작성 실행시 도서정보링크확인

0

101

3

질문입니다

0

76

1

안녕하십니까! 질문드립니다!

0

111

2

md파일 수정만 하는게 아니라 실제 파일 수정

0

190

3

26번 영상과 23번 영상이 같습니다

0

89

1

영상에 사용한 슬라이드

0

93

2

어디서 표를 복사하나요?

0

63

2

1,2번이 강의가 같아요.

0

74

2

export

0

213

4

화면이 두번째 강의 부터 안나와요

0

144

1

nodemon ./bin/www 입력 시 오류

0

166

1

스티커 앱 문의

0

183

3

호스팅 및 도메인 관련

0

160

1

마커이미지가 깨집니다

0

145

2

nodemon설치와 express-generator 오류

0

222

1

List<Product> 작성시

1

142

2

코드를 다운받을수 있나요?

0

204

1

Mac vscode 으로 시작하시려는 분들께

0

313

1

vscode 테마 어떤거 쓰시나요?

0

349

1