파이썬 자동화 툴 - pyautogui 사용하기
본문 바로가기
기타 저장소/유용한 tool

파이썬 자동화 툴 - pyautogui 사용하기

by _HEBB 2020. 2. 27.

pyautogui

마우스와 키보드를 자동으로 움직여보자

 

자동화가 뭐지?

자동화는 말그대로 사람 개입없이 자동으로 무언가를 하는것이다. 기존에 사람이 수동으로 직접하던것이 뭐가 있는지 생각해보자. 가장 대표적으로 컴퓨터를 할 때 키보드를 누르는 것과 마우스를 움직이는 것이 있다. 사실 pyautogui 는 이 2 가지를 대신 해주는 것이다. 이 원리가 궁금할텐데, 정확한건 나도 잘 모르지만 아마도 키보드나 마우스 등의 입력장치의 신호를 운영체제 레벨에서 받아들이는데, 그 부분을 캐치하여 활용하는 것 같다. 내부가 어떻게 되어있는지는 잘 모르겠지만 윈도우, 리눅스, 맥에서도 문제없이 돌아가는 cross-platform 툴이다. 아무튼 pyautogui 로 입력기능 자동화가 가능하다는 것이 중요하다. 흔히 말하는 매크로가 이 기능을 사용하는 것이다. 잘 활용하면 업무나 작업을 손쉽게 처리할 수도 있는 아주 유용한 개념이다. 이런저런 이유로많은 사람들이 자동화에 대해 많은 관심을 가지고 있다.

 

설치

pip 가 있다면 간단하게 install 할 수 있다.
pip install pyautogui

 

기본기능 알아보기

우선 알아야할것은 마우스를 다룰 때 좌표체계다.

좌상단이 원점, 가로가 x, 세로가 y 다. 여타 플랫폼에서의 체계와 대략 비슷하다. 나머지는 딱히 신경쓸게 없다.
복잡한게 없다. 바로 따라해보자.

 

마우스 위치 확인

import pyautogui
pyautogui.position()
# --> (x, y)

간단하게 현재 마우스의 좌표를 출력한다. 좌표체계를 알고있으면 자신의 마우스가 어딨는지 잘 알 수있다.

 

마우스 이동

# 1 초에 걸쳐 해당 좌표로 이동
pyautogui.moveTo(670, 300, 1)  

현재 마우스 포이터가 목표좌표에 대해 멀리있으면 가까이있을때 보다 더 빨리 움직인다.

 

pyautogui.dragTo(100, 200, 3, button='right')

마우스를 클릭한 채 3 초에 걸쳐 해당 좌표로 이동

 

마우스 이동

3 번째 인자를 생략하면 즉시 해당 좌표로 이동한다.

 

마우스 클릭

# 즉시 클릭

pyautogui.click(button='right')

# 좌표설정 후 클릭

pyautogui.click(x=100, y=200)

# 더블클릭, 간격설정

pyautogui.click(x=100, y=200, clicks=2, interval=.2) # doubleClick

click 대신 keyDown, keyUp 을 사용하여 더 세밀한 조작이 가능하다.

 

마우스 스크롤

# 마우스 휠 동작에 해당. 위로 100 픽셀을 10 번 = 1,000 픽셀

for i in range(10):  
pyautogui.scroll(100)

 

키보드 입력


# 천천히 타이핑하는 효과

pyautogui.click(button='left')  
#pyautogui.write('Hello world!')  
pyautogui.write('Hello world!', interval=0.1)

천천히 입력

마치 사람이 쓰는것같은 효과가 난다.

interval 을 없애면 한 번에 입력된다. 

 

키보드 연속동작


# 확대

pyautogui.keyDown('ctrl')  
pyautogui.press('-')  
pyautogui.press('-')  
pyautogui.keyUp('control')

ctrl 키를 누른 채로 - 키를 2 번 누른 후 다시 ctrl 을 놓는다.
흔히 사용하는 화면축소 커맨드다.

 

스크린샷

im2 = pyautogui.screenshot('my\_screenshot.png')  
im = pyautogui.screenshot('screenshot.jpg', region=(0,0, 300, 800))

스크린 샷 파일 생성

 

>> pyautogui 매뉴얼

 

Welcome to PyAutoGUI’s documentation! — PyAutoGUI documentation

Welcome to PyAutoGUI’s documentation! PyAutoGUI lets your Python scripts control the mouse and keyboard to automate interactions with other applications. The API is designed to be as simple. PyAutoGUI works on Windows, macOS, and Linux, and runs on Python

pyautogui.readthedocs.io

댓글