본문 바로가기

Study Information Technology

PyAutoGUI로 반복적인 데스크톱 작업 자동화하기

728x90
반응형

PyAutoGUI로 반복적인 데스크톱 작업 자동화하기

Overview

컴퓨터를 사용할 때 반복적으로 수행하는 작업들이 많습니다. 예를 들어, 매일 같은 양식에 정보를 입력하거나 파일을 특정 폴더로 옮기는 작업이 그렇죠. 이러한 작업은 시간이 많이 소모되며, 실수할 가능성도 높습니다. Python의 pyautogui 라이브러리를 활용하면 이러한 반복적인 작업을 자동화하여 시간과 노력을 절약할 수 있습니다. 이번 글에서는 pyautogui를 사용하여 폼을 작성하고, 파일을 이동하는 방법을 상세히 설명하겠습니다.

PyAutoGUI란 무엇인가?

pyautogui는 Python으로 작성된 GUI 자동화 라이브러리로, 키보드와 마우스의 입력을 프로그램matically 시뮬레이션 할 수 있습니다. 이 라이브러리를 통해 화면에서 특정 위치를 클릭하거나, 텍스트를 입력하는 등 다양한 작업을 자동으로 수행할 수 있습니다. 설치는 간단하며, 아래 명령어를 통해 할 수 있습니다.

pip install pyautogui

설치 후, 다음과 같은 기본적인 기능을 제공받습니다.

  • 마우스 이동 및 클릭
  • 키보드 입력
  • 화면 캡처 및 이미지 인식

폼 자동화하기

가장 먼저, pyautogui를 사용하여 웹 폼이나 애플리케이션의 입력 필드에 정보를 자동으로 입력하는 방법을 알아보겠습니다. 예를 들어, 웹 브라우저의 로그인 페이지에서 사용자 이름과 비밀번호를 입력하고 로그인 버튼을 클릭하는 시나리오를 생각해보겠습니다.

코드 예제

아래는 로그인 폼을 자동으로 채우고 제출하는 간단한 코드 예제입니다.

import pyautogui
import time

# 웹 브라우저 열기 (예: 크롬)
# 먼저 해당 URL로 이동해주세요.
pyautogui.hotkey('ctrl', 'n')  # 새로운 창 열기
time.sleep(1)
pyautogui.write('https://example.com/login')  # 로그인 페이지 URL
pyautogui.press('enter')  # 엔터키 눌러서 이동
time.sleep(3)  # 페이지 로딩 대기

# 사용자 이름 입력
pyautogui.click(x=500, y=300)  # 사용자 이름 입력 필드 클릭
pyautogui.write('your_username')  # 사용자 이름 입력

# 비밀번호 입력
pyautogui.click(x=500, y=350)  # 비밀번호 입력 필드 클릭
pyautogui.write('your_password')  # 비밀번호 입력

# 로그인 버튼 클릭
pyautogui.click(x=500, y=400)  # 로그인 버튼 클릭

코드 설명

  1. 웹 브라우저 열기: pyautogui.hotkey('ctrl', 'n')를 사용하여 새로운 창을 엽니다.
  2. URL 입력: 지정한 URL을 입력하고 엔터키를 눌러 이동합니다.
  3. 입력 필드 클릭 및 텍스트 입력: click() 메서드를 통해 특정 좌표를 클릭하여 텍스트 필드에 포커스를 맞춘 후, write() 메서드로 사용자 이름과 비밀번호를 입력합니다.
  4. 로그인 버튼 클릭: 로그인 버튼을 클릭하여 로그인을 완료합니다.

에러 처리

실제로 작업을 수행할 때 에러가 발생할 수 있습니다. 예를 들어, 웹 페이지가 예상보다 느리게 로딩되면, pyautogui의 클릭 명령이 잘못된 위치에서 실행될 수 있습니다. 이를 방지하기 위해서는 충분한 대기 시간을 두거나, 이미지 인식을 사용하여 요소를 찾는 방법도 있습니다.

# 로그인 버튼 이미지 인식
button_location = pyautogui.locateOnScreen('login_button.png')
if button_location:
pyautogui.click(button_location)
else:
print("로그인 버튼을 찾을 수 없습니다.")

파일 이동 자동화하기

이제 파일을 한 폴더에서 다른 폴더로 이동하는 방법에 대해 알아보겠습니다. 예를 들어, "Downloads" 폴더에서 "Documents" 폴더로 파일을 옮기는 작업을 자동화하는 코드입니다.

코드 예제

import pyautogui
import time

# 파일 탐색기 열기
pyautogui.hotkey('win', 'e')  # 파일 탐색기 열기
time.sleep(2)  # 대기

# 다운로드 폴더로 이동
pyautogui.write('Downloads')
pyautogui.press('enter')
time.sleep(2)  # 대기

# 파일 클릭
pyautogui.click(x=200, y=200)  # 특정 파일 위치 클릭 (좌표 조정 필요)

# 파일 복사
pyautogui.hotkey('ctrl', 'c')  # 복사
time.sleep(1)

# 문서 폴더로 이동
pyautogui.hotkey('win', 'e')  # 새 파일 탐색기 열기
time.sleep(2)
pyautogui.write('Documents')
pyautogui.press('enter')
time.sleep(2)

# 파일 붙여넣기
pyautogui.hotkey('ctrl', 'v')  # 붙여넣기

코드 설명

  1. 파일 탐색기 열기: win + e 단축키로 파일 탐색기를 엽니다.
  2. 폴더 이동 및 파일 선택: 다운로드 폴더로 이동한 후, 특정 좌표에 있는 파일을 클릭합니다.
  3. 파일 복사 및 붙여넣기: 복사 후 문서 폴더로 이동하여 파일을 붙여넣습니다.

에러 처리

파일이 예상 위치에 없거나 잘못된 폴더를 선택하는 등의 문제가 발생할 수 있습니다. 이를 해결하기 위해서는 조건문을 사용하여 파일 존재 여부를 체크하거나, UI 요소의 이미지 인식을 통해 확인할 수 있습니다.

# 파일 존재 여부 확인
file_location = pyautogui.locateOnScreen('your_file.png')
if file_location:
pyautogui.click(file_location)
pyautogui.hotkey('ctrl', 'c')
else:
print("파일을 찾을 수 없습니다.")

마무리

pyautogui는 단순하지만 강력한 도구로, 반복적인 작업을 자동화하여 생산성을 높일 수 있습니다. 이 글에서 다룬 내용들을 활용하면 폼 작성, 파일 이동 등 다양한 작업을 쉽고 빠르게 수행할 수 있습니다. 그러나 UI 요소의 위치나 화면 해상도에 따라 코드가 제대로 작동하지 않을 수 있으니, 각자의 환경에 맞게 조정하는 것이 중요합니다.

참고문서

728x90
반응형