최근에 자원봉사로 행정업무 관련해서 봉사활동을 갔습니다. 봉사활동을 하던 도중에 '충분히 python과 pyautogui을 이용하면 이런 쓸데없는 곳에 시간을 낭비하지 않아도 될 텐데;'라는 생각을 했었습니다. 그래서 짤막하게 알아두고 있었던 pyautogui 라이브러리를 사용하여 프로그램을 만들어서 업무를 진행했었는데 공무원들의 환호를 받았었습니다.
이런 컴퓨터 행정업무나, 단순노동에서 힘들어하시는 분들과 pyautogui을 오랫동안 쓰지 않았던 스스로를 위해 해당 내용을 한번 더 정리해보고자 합니다.
Pyautogui 왜 쓰는데요?
Pyautogui는 python을 이용하여 마우스나 키보드 알림창을 만들때 도움을 주는 라이브러리입니다. API가 되게 심플하게 제작되었으며 윈도나 맥, 리눅스에서도 충분히 돌아가도록 만들어졌습니다.
한줄로 요약하자면 : 마우스, 키보드, 알림창 매크로를 쉽게 만들고 싶을때 사용하는 라이브러리 입니다.
깊고 자세한 내용은 공식문서를 참조하시면 더 알 수 있으니 링크 걸어두겠습니다.
공식문서 : https://pyautogui.readthedocs.io/en/latest/
Pyautogui 사용법
일단 외부 라이브러리이기 때문에 pyautogui을 터미널에서 설치를 하셔야 합니다. 아래 명령어를 통해 설치합니다.
pip install pyautogui
아래에서는 pyautogui을 통해 마우스, 키보드, 알림창을 어떻게 제어하는지에 대해 알아보고자 합니다.
마우스 관련 함수
이번에는 pyautogui을 이용한 마우스 제어에 대해 알아보고자 합니다. 일반적으로 마우스 위치는 왼쪽 위를 (0, 0) 좌표로 설정 한 뒤, x, y값으로 표현합니다. 이해를 돕기 위해 아래 사진을 확인해주시면 됩니다.
아래는 마우스 제어를 하기 위한 pyautogui 코드 입니다. 주석으로 원하시는 제어 방식 설명해 두었으니 참고하시면 됩니다.
- code.py
import pyautogui
# 현재 마우스의 x, y 좌표를 반환합니다.
# current mouse x and y
pyautogui.position()
# x, y 위치로 duration초 만큼 이동합니다.
# move mouse to XY coordinates over num_second seconds
pyautogui.moveTo(x, y, duration=num_seconds)
# 현재 마우스 위치에서 xOffset, yOffset 만큼 duration초 만큼 이동합니다.
# move mouse relative to its current position
pyautogui.moveRel(xOffset, yOffset, duration=num_seconds)
# 마우스 클릭
pyautogui.click()
# 마우스 더블클릭
pyautogui.doubleclick()
# 마우스 버튼 조작
pyautogui.mouseDown(button='right')
pyautogui.mouseUp(button='right', x=100, y=200)
# 마우스 스크롤 조작
pyautogui.scroll(10)
키보드 관련 함수
다음은 pyautogui을 이용하여 키보드 제어를 하기 위한 코드 입니다.
import pyautogui
# Hello world!라는 단어를 타이핑합니다. 글자사이의 간격마다 interval초가 소요됩니다.
# useful for entering text, newline is Enter
pyautogui.typewrite('Hello world!\n', interval=secs_between_keys)
# 키보드의 키를 누릅니다. 여러개가 있을 경우 리스트로 처리할 수 있습니다.
pyautogui.press('enter')
pyautogui.press('f1')
pyautogui.press(['left', 'left', 'left'])
# hotkey을 이용하여 조합키를 사용합니다.
pyautogui.hotkey('ctrl', 'c') # ctrl-c to copy
pyautogui.hotkey('ctrl', 'v') # ctrl-v to paste
# 키를 누르거나, 때는 행동을 제어 합니다.
pyautogui.keyDown(key_name)
pyautogui.keyUp(key_name)
메세지 박스 관련 함수
메시지 박스에 대해서 생소하실텐데 제어, 경고, 알림 등을 나타낼 때 사용되는 박스를 말합니다. 아래와 같은 창을 의미합니다.
다음은 pyautogui을 이용한 메시지 박스 제어 코드 입니다.
# 단순 알림 박스
pyautogui.alert('This displays some text with an OK button.')
pyautogui.alert(text='', title='', button='OK')
# 예, 아니요 박스
pyautogui.confirm('This displays text and has an OK and Cancel button.')
pyautogui.confirm(text='', title='', buttons=['OK', 'Cancel'])
# 문장을 받는 박스
pyautogui.prompt('This lets the user type in a string and press OK.')
pyautogui.prompt(text='', title='' , default='')
# 비밀번호 입력을 받는 박스
pyautogui.password(text='', title='', default='', mask='*')
'Programing Language > Python' 카테고리의 다른 글
requests, bs4, selenium4을 통해 웹 페이지 데이터 크롤링하기 (0) | 2023.11.24 |
---|---|
코드 포맷터의 의미와 파이참에서 Black으로 코드 스타일 자동화 하기 (2) | 2023.11.23 |
추상 클래스와 덕 타이핑 (0) | 2023.09.06 |
requests 기본 동작 방식과 session() (0) | 2023.09.03 |
openpyxl로 엑셀 데이터 다루기 (0) | 2023.08.20 |