Retour au blog
28 avril 2026 Arthur Fabbri

Automatiser Windows avec Python : le guide pratique

pyautogui, keyboard, pywin32, watchdog — apprenez à automatiser vos tâches répétitives sur Windows avec Python, avec un exemple de renommeur automatique de fichiers.

Python est l'outil idéal pour automatiser les tâches répétitives sur Windows. Voici les bibliothèques incontournables et un exemple concret.

Bibliothèques essentielles

pip install pyautogui keyboard pywin32 watchdog

pyautogui — contrôle souris et clavier

import pyautogui
import time

# Déplacer la souris et cliquer
pyautogui.moveTo(500, 300, duration=0.5)
pyautogui.click()

# Taper du texte
pyautogui.typewrite("Bonjour le monde !", interval=0.05)

# Raccourci clavier
pyautogui.hotkey("ctrl", "s")

# Capturer l'écran
screenshot = pyautogui.screenshot()
screenshot.save("capture.png")

Sécurité : ajoutez pyautogui.FAILSAFE = True — bouger la souris en haut à gauche stoppe le script.

keyboard — raccourcis globaux

import keyboard

# Écouter un raccourci global
keyboard.add_hotkey("ctrl+shift+f", lambda: print("Raccourci déclenché !"))

# Bloquer jusqu'à une touche
keyboard.wait("esc")

# Lire les touches
event = keyboard.read_event()
print(event.name)

pywin32 — accès Windows avancé

import win32api
import win32con
import win32gui

# Lister les fenêtres ouvertes
def callback(hwnd, windows):
    if win32gui.IsWindowVisible(hwnd):
        windows.append((hwnd, win32gui.GetWindowText(hwnd)))

windows = []
win32gui.EnumWindows(callback, windows)
for hwnd, title in windows:
    if title:
        print(f"{hwnd}: {title}")

# Envoyer un message à une fenêtre
# win32api.SendMessage(hwnd, win32con.WM_CLOSE, 0, 0)

watchdog — surveiller les fichiers

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import time

class MonHandler(FileSystemEventHandler):
    def on_created(self, event):
        if not event.is_directory:
            print(f"Nouveau fichier : {event.src_path}")

    def on_modified(self, event):
        print(f"Fichier modifié : {event.src_path}")

observer = Observer()
observer.schedule(MonHandler(), path="C:/Users/arthu/Downloads", recursive=False)
observer.start()

try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    observer.stop()
observer.join()

Exemple complet : renommeur automatique

Un script qui surveille votre dossier Téléchargements et renomme automatiquement les fichiers selon leur type.

import os
import re
from pathlib import Path
from datetime import datetime
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

DOWNLOADS = Path.home() / "Downloads"

PREFIXES = {
    ".pdf": "DOC",
    ".docx": "DOC",
    ".xlsx": "TABLEUR",
    ".png": "IMG",
    ".jpg": "IMG",
    ".jpeg": "IMG",
    ".mp4": "VIDEO",
    ".zip": "ARCHIVE",
    ".py": "CODE",
    ".ts": "CODE",
}

def nettoyer_nom(nom: str) -> str:
    nom = re.sub(r"[^a-zA-Z0-9._-]", "_", nom)
    nom = re.sub(r"_+", "_", nom)
    return nom.strip("_")

def renommer(chemin: Path) -> None:
    if not chemin.is_file():
        return

    ext = chemin.suffix.lower()
    prefix = PREFIXES.get(ext, "FICHIER")
    date = datetime.now().strftime("%Y%m%d_%H%M%S")
    nouveau_nom = f"{prefix}_{date}_{nettoyer_nom(chemin.stem)}{ext}"
    nouveau_chemin = chemin.parent / nouveau_nom

    if chemin != nouveau_chemin and not nouveau_chemin.exists():
        chemin.rename(nouveau_chemin)
        print(f"✓ {chemin.name} → {nouveau_nom}")

class RenommeurHandler(FileSystemEventHandler):
    def on_created(self, event):
        if not event.is_directory:
            renommer(Path(event.src_path))

if __name__ == "__main__":
    print(f"Surveillance de : {DOWNLOADS}")
    observer = Observer()
    observer.schedule(RenommeurHandler(), path=str(DOWNLOADS), recursive=False)
    observer.start()
    try:
        while True:
            import time
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

Transformer en .exe

pip install pyinstaller
pyinstaller --onefile --noconsole renommeur.py

Le fichier .exe généré dans /dist peut être lancé sans Python installé.

Automatiser au démarrage Windows

Ajoutez un raccourci vers votre script (ou .exe) dans :

C:\Users\[vous]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Conclusion

Avec ces quatre bibliothèques, vous pouvez automatiser la quasi-totalité des tâches répétitives sur Windows : clics, formulaires, traitement de fichiers, notifications. La limite, c'est votre imagination.