안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

오늘은 엑셀이나 웹브라우저처럼 파이썬 전용 패키지가 없어서 조작을 할 수 없는 경우에 아주 유용한 PyAutoGUI라는 패키지에 대해서 배워보겠습니다.
저는 회사에서 SAP사의 ERP(Enterprise Resource Planning)를 사용하는데, 이걸 자동화 시키려고 하니깐 무료로 제공하는 API가 없어서 고민하던 중 해당 패키지를 사용하면 좋겠다는 생각이 들어서 공부해보게 되었답니다.
<PyautoGUI 관련 지난 글>
2021.06.14 - [파이썬 패키지/사무자동화] - [Python / PyAutoGUI] 파이썬 마우스/키보드 조작 패키지_1편.마우스 조작하기
2021.06.15 - [파이썬 패키지/사무자동화] - [Python / PyAutoGUI] 파이썬 마우스/키보드 조작 패키지_2편.키보드 조작하기(ft.한글 입력 방법)
2021.06.19 - [파이썬 패키지/사무자동화] - [Python / PyAutoGUI] 파이썬 마우스/키보드 조작 패키지_3편.원하는 이미지를 찾아서 클릭하기
오늘은 지난 시간에 이어서 작동중에 사용자의 확인이 필요하거나 문자 혹은 패스워드를 입력 받아야 하는 경우에 대처할 수 있는 메세지 박스 기능에 대해 배워보겠습니다.
알림창 띄우기 (OK)
: alert( )
가장 기본적인 알림을 띄워보겠습니다.
import pyautogui
pyautogui.alert('코딩유치원 자주 찾아와주세요.')

alert( ) 함수에는 어떤 파라미터가 있는지 한 번 보겠습니다.
파라미터 | (자료형) 입력값 | 기본값 |
text | (str) 원하는 메시지 | X |
title | (str) 창 제목 | X |
button | (str) 원하는 버튼 이름 (bool) True/False |
OK |
timeout | (int) msecond (단위: 1/1000초) | None (시간제한 없음) |
alert( ) 함수의 버튼을 클릭하거나 종료하면는 위에서 설정했던 버튼 이름을 문자열로 리턴해줍니다.
만약 timeout을 설정하셨다면 설정한 시간이 끝나고 timeout을 문자열로 리턴해줍니다.
아래의 예제 코드를 실행하셔서 어떻게 작동하는지 확인해보세요.
alert = pyautogui.alert('코딩유치원 자주 찾아와주세요.', title='코딩유치원', button='확인', timeout = 3000)
print(alert)
확인창 띄우기 (OK / Cancel)
: confirm( )
위에서 배운 알림창과 다른 것은 버튼 2개 중 하나를 선택할 수 있다는 것입니다.
import pyautogui
pyautogui.confirm('계속 진행하시겠습니까?')

confirm( ) 함수도 어떤 파라미터가 있는지 보겠습니다.
파라미터 | (자료형) 입력값 | 기본값 |
text | (str) 원하는 메시지 | X |
title | (str) 창 제목 | X |
buttons | (tuple) ('버튼 이름1', '버튼 이름2') | OK & Cancel |
timeout | (int) msecond (단위: 1/1000초) | None (시간제한 없음) |
이 함수 역시 위에서 배운 alert( )와 같이 선택한 버튼의 버튼명을 문자열로 리턴해줍니다.
텍스트 입력창 띄우기
: prompt( )
이번에는 텍스트를 입력받는 것 까지 추가된 창을 띄워보겠습니다.
import pyautogui
text = pyautogui.prompt('원하는 메시지를 입력해주세요')

마찬가지로 설정 가능한 파라미터를 보겠습니다. default 말고는 이미 봤던 친구들이네요.
파라미터 | (자료형) 입력값 | 기본값 |
text | (str) 원하는 메시지 | X |
title | (str) 창 제목 | X |
default | (str) 기본적으로 입력창에 입력된 문자열 | X |
timeout | (int) msecond (단위: 1/1000초) | None (시간제한 없음) |
default 옵션이 뭔가 했더니 메시지 입력창에 처음부터 입력되어 있는 메시지였습니다.

prompt( ) 함수는 OK 버튼을 누르면 위에서 입력받은 텍스트를 문자열로 리턴해주며, Cancel 버튼을 누를 시엔 None을 리턴해줍니다.
비밀번호 입력창 띄우기
: password( )
이 함수는 위에서 배운 prompt( ) 함수와 같지만 입력 시에 *를 출력하여 보안을 위한 기능을 추가한 함수입니다.

위의 prompt( ) 함수와 다른 파라미터는 mask 하나입니다. 만약 mask를 '='로 해주면 * 대신에 =으로 출력됩니다.
파라미터 | (자료형) 입력값 | 기본값 |
text | (str) 원하는 메시지 | X |
title | (str) 창 제목 | X |
default | (str) 기본적으로 입력창에 입력된 문자열 | X |
mask | (str) 원하는 마스크 기호 | * |
timeout | (int) msecond (단위: 1/1000초) | None (시간제한 없음) |
password( ) 함수는 prompt( ) 함수와 마찬가지로 OK 버튼을 누르면 위에서 입력받은 텍스트를 문자열로 리턴해주며, Cancel 버튼을 누를 시엔 None을 리턴해줍니다.
오늘 준비한 내용은 여기까지입니다.
오늘도 코딩유치원을 찾아주신 모든분들께 감사합니다.
<참고 자료>
https://pyautogui.readthedocs.io/en/latest/msgbox.html
Message Box Functions — PyAutoGUI documentation
PyAutoGUI makes use of the message box functions in PyMsgBox to provide a cross-platform, pure Python way to display JavaScript-style message boxes. There are four message box functions provided: The prompt() Function >>> prompt(text='', title='' , default
pyautogui.readthedocs.io
'파이썬 패키지 > 매크로' 카테고리의 다른 글
[Python / PyAutoGUI] 파이썬 마우스/키보드 조작 패키지_3편.원하는 이미지를 찾아서 클릭하기 (0) | 2021.06.19 |
---|---|
[Python / PyAutoGUI] 파이썬 마우스/키보드 조작 패키지_2편.키보드 조작하기(ft.한글 입력 방법) (0) | 2021.06.15 |
[Python / PyAutoGUI] 파이썬 마우스/키보드 조작 패키지_1편.마우스 조작하기 (3) | 2021.06.14 |