[파이썬] pyautogui 예외 처리와 안정성

pyautogui는 파이썬으로 자동화된 마우스 및 키보드 조작을 제공하는 라이브러리로 많은 사용자들에게 유용하게 쓰이고 있습니다. 하지만 때로는 특정 예외 상황이 발생할 수 있고, 이를 처리하는 것이 중요합니다. 또한 안정성을 고려하여 예외 처리 코드를 작성하는 것이 좋습니다.

1. 예외 처리

pyautogui를 사용하다보면 다양한 예외가 발생할 수 있습니다. 이러한 예외들은 주로 입력 오류, 윈도우 관련 이슈, 해상도 변경 등과 관련된 문제들입니다. 가장 일반적인 예외 중 하나는 FailSafeException으로, 마우스의 위치가 화면의 왼쪽 상단 모서리로 이동하면 발생합니다. 이 경우 사용자가 예기치 않게 스크립트를 중단할 수 있어 예외 처리를 통해 이를 잡아낼 수 있습니다.

import pyautogui

try:
    # pyautogui를 사용한 자동화 코드 작성
    # ...
except pyautogui.FailSafeException:
    print("사용자가 스크립트 실행을 중단했습니다.")

또한, 마우스나 키보드 조작 중에는 다른 응용 프로그램이 사용자 입력을 가로챌 수 있기 때문에 pyautogui 작업을 수행하기 전에 대기하는 것이 좋습니다. pyautogui에서는 기본적으로 작업 수행 전에 0.1초의 딜레이가 있습니다. 이를 조절하여 대기 시간을 늘릴 수 있습니다.

import pyautogui

# 딜레이 시간 0.5초로 설정
pyautogui.PAUSE = 0.5

# 자동화 작업 수행
# ...

2. 안정성 고려하기

pyautogui를 사용하여 자동화 작업을 수행할 때, 안정성을 고려하여 코드를 작성하는 것이 중요합니다. 작업을 수행하기 전에 사용자에게 충분한 정보를 제공하고, 예외 상황에 대비하여 코드를 작성해야 합니다.

예를 들어, 마우스를 특정 좌표로 이동시키는 작업을 수행할 때, 해당 좌표가 화면 내에 존재하는지 확인하는 것이 좋습니다. pyautoguisize() 함수를 통해 현재 화면의 해상도를 알 수 있으며, 이를 기반으로 이동할 좌표가 유효한지 검사할 수 있습니다.

import pyautogui

def move_to_coordinates(x, y):
    screen_width, screen_height = pyautogui.size()

    # 좌표가 화면 범위 내에 있는지 확인
    if 0 <= x <= screen_width and 0 <= y <= screen_height:
        pyautogui.moveTo(x, y)
    else:
        print("유효하지 않은 좌표입니다.")

# 예시 좌표로 이동
move_to_coordinates(500, 500)

이와 같이 예외 처리와 안정성을 고려하여 코드를 작성하면, pyautogui를 더욱 안전하고 신뢰할 수 있는 방식으로 사용할 수 있습니다.