How to

Como automatizar tu escritorio con Python

Este vídeo es una introducción a pyautogui una librería con la que podrás emular un teclado, ratón, tomar capturas de pantalla, etc. Muy útil por ejemplo para abrir aplicaciones y ejecutar secuencias de comandos automáticamente

Básicamente la libreria lo que nos ofrece son comandos para:

  • Controlar el teclado y el ratón
  • Enviar mensajes y capturar datos del usuario.
  • Capturas de pantalla
  • Obtener información del escritorio

Control del teclado y el ratón

Los comandos básicos para el control del teclado y el ratón se pueden dividir en dos: click y write. Por ejemplo:

pyautogui.click(206, 73)

Hace clic en las coordenadas X e Y indicadas.

También podemos pasar como parámetro una imagen del icono y pyautogui se encargará del resto, por ejemplo si agregamos la siguiente imagen:

podemos pasársela al comando click para que busque en el escritorio y lo ejecute:

pyautogui.click('chrome.png') 

También nos permite enviar texto con el comando write de forma similar como lo haríamos con el teclado:

pyautogui.write('gmail.com', interval=0.25)

o tambien enviar teclas especiales como enter con el comando:

pyautogui.press('enter')

un ejemplo de script combinando ambos comandos podría ser el siguiente en el que para un escritorio ubuntu de 1920×1080 de resolución podríamos reiniciar sesion en nuestro correo de gmail automáticamente:

import pyautogui
from time import sleep
screenWidth, screenHeight = pyautogui.size() 
currentMouseX, currentMouseY = pyautogui.position() 
print(currentMouseX, currentMouseY)
pyautogui.click('chrome.png') 
pyautogui.click(206, 73)
pyautogui.write('gmail.com', interval=0.25)
pyautogui.press('enter')
sleep(1.0)
pyautogui.click(850, 498)
sleep(1.0)
pyautogui.click(1084, 685)

Otro ejemplo mas elaborado seria pintar en gimp con los comandos drag:

import pyautogui
from time import sleep
sleep(5.0)
distance = 200
while distance > 0:
    pyautogui.drag(distance, 0, duration=0.5)   
    distance -= 5
    pyautogui.drag(0, distance, duration=0.5)   
    pyautogui.drag(-distance, 0, duration=0.5)  
    distance -= 5
    pyautogui.drag(0, -distance, duration=0.5) 

Capturar la pantalla

Para capturar la pantalla simplemente necesitamos ejecutar el comando screenshot:

import pyautogui
from time import sleep
sleep(1.0)
im1 = pyautogui.screenshot()
im2 = pyautogui.screenshot('my_screenshot.png')

Si le pasamos un parámetro con el nombre de la imagen nos guardará la captura con ese mismo nombre y formato. Para pruebas automatizadas viene genial! ¿no crees?

Mensajes y alertas

Por ultimo podemos mostrar mensajes y alertas de forma sencilla:

from pyautogui import alert

#mensajes
alert(text='Hola Argonautas', title='Subscribiros a mi canal de youtube', button='OK')

Hasta aquí todo lo básico ¡pero hay mucho más! puedes consultar la pagina oficial https://pyautogui.readthedocs.io/en/latest/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *