Tu passes ta journée à déplacer la souris, cliquer, copier des valeurs d'un tableur vers un formulaire, répéter les mêmes gestes des dizaines de fois ? PyAutoGUI est le module Python qui fait tout ça à ta place. Il contrôle directement ta souris et ton clavier : position du curseur, clics, glisser-déposer, frappe de texte, raccourcis clavier, molette, captures d'écran. En clair, c'est un petit robot de bureau piloté par un script. Pas d'IA, pas de cloud : juste du Python qui parle à ton système comme tu le ferais toi-même.
Un avertissement avant de foncer : un script qui bouge ta souris tout seul prend le contrôle de ta machine le temps qu'il tourne, et peut faire des dégâts s'il est mal écrit. Garde toujours le frein d'urgence activé (on y revient à la fin) et teste sur une machine ou une session dédiée, pas au milieu de ta journée de travail.
Étape 1 : installer et repérer ton écran
pip install pyautoguiPyAutoGUI raisonne en pixels. Avant de déplacer quoi que ce soit, tu dois connaître la taille de ton écran et le système de coordonnées : le point (0, 0) est le coin en haut à gauche, les x augmentent vers la droite, les y vers le bas.
import pyautogui
largeur, hauteur = pyautogui.size()
print(f"Ton écran fait {largeur} x {hauteur} pixels")
x, y = pyautogui.position()
print(f"La souris est actuellement en ({x}, {y})")Étape 2 : déplacer la souris et cliquer
moveTo() amène le curseur à une position absolue en pixels. Le paramètre duration crée un déplacement fluide, ce qui évite qu'un logiciel ne voie arriver un saut trop brutal. Ensuite, click() appuie et relâche le bouton gauche. Pour la molette, scroll() prend une valeur négative pour descendre et positive pour monter.
import time
pyautogui.moveTo(500, 300, duration=0.5) # glisse jusqu'au point (500, 300)
pyautogui.click() # clic gauche
pyautogui.doubleClick() # double clic
pyautogui.rightClick() # clic droit
pyautogui.scroll(-3) # molette vers le bas
time.sleep(1)
# Glisser-déposer : maintenir le clic, bouger, relâcher
pyautogui.moveTo(200, 200, duration=0.3)
pyautogui.dragTo(600, 400, duration=0.8) # tire un élément d'un point à l'autreÉtape 3 : faire parler le clavier
write() tape une chaîne de caractères comme si tu la saisissais, caractère par caractère. press() appuie sur une touche précise (enter, tab, escape...). hotkey() combine plusieurs touches pour reproduire les raccourcis du style Ctrl+C.
pyautogui.click() # place d'abord le curseur dans un champ de texte
pyautogui.write("Bonjour depuis Python !", interval=0.05)
pyautogui.press("enter") # valide la saisie
pyautogui.hotkey("ctrl", "a") # sélectionne tout
pyautogui.hotkey("ctrl", "c") # copie
pyautogui.hotkey("ctrl", "v") # colleÉtape 4 : retrouver un bouton à l'écran
Coder des coordonnées en dur, c'est fragile : un seul changement de fenêtre et tout tombe à l'eau. La méthode de pro consiste à capturer l'image du bouton que tu veux cliquer, puis à demander à PyAutoGUI de la retrouver n'importe où à l'écran.
# Capture d'abord le bouton avec pyautogui.screenshot(),
# enregistre-le dans bouton.png, puis :
position = pyautogui.locateCenterOnScreen("bouton.png", confidence=0.8)
if position:
pyautogui.click(position)
print("Bouton cliqué !")
else:
print("Bouton introuvable")Le paramètre confidence tolère les petites différences visuelles (anti-aliasing, léger changement d'échelle). Pour l'utiliser, il faut OpenCV : pip install opencv-python. Sans lui, l'image doit correspondre pixel par pixel, ce qui est rarement le cas en pratique. Au passage, pyautogui.screenshot() capture tout l'écran et renvoie une image PIL : pratique pour déboguer ce que ton script a réellement vu.
Étape 5 : le frein d'urgence, non négociable
Un script qui contrôle ta machine doit toujours pouvoir être stoppé, même quand tout part en vrille. PyAutoGUI a un garde-fou intégré : si tu pousses le curseur dans le coin tout en haut à gauche de l'écran, le script s'arrête immédiatement en levant une exception. Ne le désactive jamais.
pyautogui.FAILSAFE = True # activé par défaut, garde-le ainsi
pyautogui.PAUSE = 0.3 # pause automatique entre chaque action
# Le coin en haut à gauche (0, 0) = arrêt d'urgence immédiatPyAutoGUI transforme n'importe quelle tâche répétitive en script : remplir un formulaire, exporter un rapport depuis un vieux logiciel, enchaîner des captures d'écran, automatiser un test d'interface. Combine-le avec ce que tu as déjà sous la main, par exemple un script qui surveille un dossier et déclenche une série de clics dès qu'un fichier apparaît, et tu tiens un vrai petit automate de bureau.
Commence petit : un script qui ouvre un fichier, tape trois lignes et sauvegarde. Garde le frein d'urgence, ajoute des time.sleep() entre les étapes critiques, et fais bosser ta souris à ta place.
Auteur
Krugz
Développeur fullstack
Développeur fullstack qui tente, tant bien que mal, de suivre l'actualité de l'IA au milieu d'une marée d'informations imbuvables et des milliers d'outils et de modèles qui sortent chaque jour.






