[파이썬] 업무자동화 시작 pyautogui
- Python/업무자동화
- 2024. 3. 25.
업무자동화 pyautogui
반복 작업이 많을 때 자동으로 작업을 알아서 해주면 그것만큼 편한게 없는데 키보드와 마우스 제어가 가능한 pyautogui를 사용하면 반복작업을 스스로 하는 매크로 프로그램을 만들 수 있습니다.
역사
Pyautogui는 2014년 소프트개발자 AI Sweigart(Automate the Boring Stuff with Python 책으로 유명하신 분) 에 의해 만들어졌습니다. 반복 작업을 자동화하기 위해서 만들어졌는데 현재 상당히 인기있는 모듈이 되었습니다.
설치방법도 간단합니다. 터미널에서 다음과 같이 입력하면 설치할 수 있습니다.
pip install pyautogui
pyautogui 기능
pyatugui의 주된 기능은 다음과 같습니다.
- 마우스 제어 : 마우스 커서를 이동하고 클릭하고 드래그하는 작업을 자동화합니다.
- 키보드 제어 : 특정 키를 입력하고 시뮬레이트해 작업을 스스로 하도록 합니다.
- 화면 캡쳐 : 화면 이미지를 캡처하고 처리할 수 있습니다.
- 가상머신 및 원격 서버 자동화 : 원격접속 제어 라이브러리(예: paramiko)와 함께 사용하면 원격 서버에 접속해 자동화를 할 수 있습니다.
- 윈도우(창) 제어 : 창을 선택하거나 최대화 최소화, 특히 웹브라우저는 webdriver를 이용해 원격으로 웹사이트에 접속할 수 있습니다.
관련 모듈
pyautogui는 다른 모듈과 함께 써야 시너지 효과가 나타납니다.
다음과 같은 모듈이 pyautogui와 같이 쓰입니다.
1. Selenium : 웹 브라우저 제어 모듈
2. Pywinauto(또는 Subprocess) : Windows GUI 응용 프로그램 제어 모듈
3. autoit : pyautogui와 비슷한 GUI 제어 모듈. 단, Windows에서만 사용가능. Windows에서의 고급제어기능 가능.
예시
pyautogui로 메모장을 불러와 'Hello world'를 써보겠습니다.
import pyautogui
import subprocess
import time
# 메모장 불러오기
subprocess.Popen(["notepad.exe"])
time.sleep(2)
# "notepad" 쓰고 Enter 누르기(줄바꾸기)
pyautogui.typewrite("notepad")
pyautogui.press("enter")
# "Hello,world!" 쓰기
pyautogui.typewrite("Hello, World!")
한계점
- 시스템 성능에 따라 지연이 될 수 있습니다.
컴퓨터 사양이 좋지 않으면 매크로를 동작하다가 다운될 수 있습니다. 예를 들어, 웹사이트를 들어가서 특정 소스를 가져올때 메모리 과부하로 점차 웹사이트가 지연이 되면서 매크로 전체가 무너질 수 있습니다. - 컴퓨터가 스스로 움직이는 것이라서 컴퓨터를 켜놓아야 합니다. 예기치 않는 상황이 발생해서 작업이 꼬이게 되면 멈추기가 어렵습니다. 작업이 시작되기 전에 멈추는 동작을 강력하게 정해놓지 않으면 내가 멈추라고 명령해도 계속해서 작업을 진행합니다.
이런 한계점이 있기 때문에 매크로를 만들때는 충분한 사전 시뮬레이션과 테스트를 여러번 검증해야 합니다.
마치며
pyautogui 는 C, 자바와 달리 어렵지 않은 문법을 가진 파이썬으로 코딩작업을 하기 때문에 보다 쉽게 매크로 프로그램을 만들 수 있습니다. pyautogui를 이용해 내 작업의 효율을 높이기 위한 매크로 프로그램을 만들어보시기 바랍니다.
이번 포스팅은 pyautogui에 대해 간단한 소개였습니다.
마우스제어와 키보드 제어에 대한 내용은 다음 포스팅을 참고해주세요.
[업무 자동화 파이썬] pyautogui로 마우스 제어하기
[업무 자동화 파이썬] Listener를 이용한 마우스 이벤트 제어
함께보면 좋은글
'Python > 업무자동화' 카테고리의 다른 글
[파이썬] 이미지 클립보드에 복사 붙여넣기 (0) | 2024.04.06 |
---|---|
[파이썬] 클립보드 텍스트 복사 붙여넣기 (0) | 2024.04.04 |
[업무자동화] 파이썬으로 키보드 제어하기 (0) | 2024.04.01 |
[업무 자동화 파이썬] Listener를 이용한 마우스 이벤트 제어 (0) | 2024.03.30 |
[업무 자동화 파이썬] pyautogui로 마우스 제어하기 (0) | 2024.03.28 |