Pourquoi automatiser avec Python ?

Tu passes des heures à faire des tâches répétitives sur ton ordinateur ? Il est temps d'automatiser avec Python. Que ce soit renommer des fichiers, envoyer des emails, scraper des données ou organiser tes dossiers, Python peut le faire pour toi en quelques secondes.

L'automatisation est l'un des superpouvoir de Python. Avec quelques lignes de code, tu peux économiser des heures chaque semaine. Voici 7 scripts concrets et utiles au quotidien que tu peux utiliser dès maintenant.

Script 1 : Organiser automatiquement ses fichiers de téléchargement

Ton dossier Téléchargements est un chaos ? Ce script trie automatiquement tes fichiers par type.

import os
import shutil
from pathlib import Path

DOSSIER = Path.home() / "Downloads"

CATEGORIES = {
    "Images": [".jpg", ".jpeg", ".png", ".gif", ".webp", ".svg"],
    "Documents": [".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".txt"],
    "Videos": [".mp4", ".avi", ".mkv", ".mov"],
    "Musique": [".mp3", ".wav", ".flac"],
    "Archives": [".zip", ".rar", ".7z", ".tar", ".gz"],
    "Code": [".py", ".js", ".html", ".css", ".json"],
}

def organiser_telechargements():
    for fichier in DOSSIER.iterdir():
        if fichier.is_file():
            extension = fichier.suffix.lower()
            dossier_cible = "Autres"

            for categorie, extensions in CATEGORIES.items():
                if extension in extensions:
                    dossier_cible = categorie
                    break

            destination = DOSSIER / dossier_cible
            destination.mkdir(exist_ok=True)
            shutil.move(str(fichier), str(destination / fichier.name))
            print(f"Déplacé : {fichier.name} → {dossier_cible}/")

organiser_telechargements()

Astuce : Programme ce script pour s'exécuter automatiquement avec cron (Linux/Mac) ou le Planificateur de tâches (Windows).

Script 2 : Renommer des fichiers en masse

Tu as 200 photos nommées "IMG_20250301_123456.jpg" ? Ce script les renomme proprement.

import os
from pathlib import Path
from datetime import datetime

def renommer_photos(dossier, prefixe="vacances"):
    dossier = Path(dossier)
    photos = sorted(dossier.glob("*.jpg"))

    for i, photo in enumerate(photos, 1):
        nouveau_nom = f"{prefixe}_{i:03d}{photo.suffix}"
        photo.rename(dossier / nouveau_nom)
        print(f"{photo.name} → {nouveau_nom}")

    print(f"
{len(photos)} fichiers renommés !")

# Utilisation
renommer_photos("/chemin/vers/mes/photos", "mali-2025")

Script 3 : Surveiller les prix d'un produit en ligne

Tu veux acheter un produit au meilleur prix ? Ce script vérifie le prix régulièrement et t'alerte quand il baisse.

import requests
from bs4 import BeautifulSoup
import smtplib
import time

def verifier_prix(url, prix_cible):
    headers = {"User-Agent": "Mozilla/5.0"}
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.text, "html.parser")

    # Adapter le sélecteur selon le site
    prix_element = soup.select_one(".price")
    if prix_element:
        prix = float(prix_element.text.replace("€", "").replace(",", ".").strip())
        print(f"Prix actuel : {prix:.2f} EUR")

        if prix <= prix_cible:
            print(f"ALERTE : Le prix est tombé à {prix:.2f} EUR !")
            # Envoyer une notification
            return True
    return False

# Vérifier toutes les heures
while True:
    if verifier_prix("https://example.com/produit", 49.99):
        break
    time.sleep(3600)

Script 4 : Sauvegarder automatiquement ses projets

Ne perds plus jamais ton travail. Ce script crée des backups automatiques avec horodatage.

import shutil
from pathlib import Path
from datetime import datetime

def backup_projet(source, destination_base):
    source = Path(source)
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    nom_backup = f"{source.name}_backup_{timestamp}"
    destination = Path(destination_base) / nom_backup

    shutil.copytree(
        source,
        destination,
        ignore=shutil.ignore_patterns("__pycache__", "*.pyc", ".git", "node_modules", "venv")
    )

    print(f"Backup créé : {destination}")
    print(f"Taille : {sum(f.stat().st_size for f in destination.rglob('*') if f.is_file()) / 1024 / 1024:.1f} MB")

# Utilisation
backup_projet("/chemin/vers/mon-projet", "/chemin/vers/backups")

Script 5 : Générer des rapports PDF automatiques

Transforme des données en rapports PDF professionnels avec la bibliothèque reportlab.

from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
from datetime import datetime

def generer_rapport(donnees, fichier_sortie="rapport.pdf"):
    c = canvas.Canvas(fichier_sortie, pagesize=A4)
    largeur, hauteur = A4

    # En-tête
    c.setFont("Helvetica-Bold", 20)
    c.drawString(50, hauteur - 50, "Rapport Mensuel")
    c.setFont("Helvetica", 12)
    c.drawString(50, hauteur - 75, f"Généré le {datetime.now().strftime('%d/%m/%Y')}")

    # Contenu
    y = hauteur - 120
    c.setFont("Helvetica-Bold", 14)
    c.drawString(50, y, "Résumé des ventes")
    y -= 30

    c.setFont("Helvetica", 11)
    for ligne in donnees:
        c.drawString(70, y, f"• {ligne}")
        y -= 20

    c.save()
    print(f"Rapport généré : {fichier_sortie}")

donnees = [
    "Chiffre d'affaires : 5 200 EUR",
    "Nouveaux clients : 12",
    "Projets livrés : 3",
    "Taux de satisfaction : 98%",
]
generer_rapport(donnees)

Script 6 : Envoyer des emails en masse personnalisés

Parfait pour des newsletters ou des relances clients.

import csv
import smtplib
from email.mime.text import MIMEText

def envoyer_newsletter(fichier_contacts, sujet, template):
    with open(fichier_contacts) as f:
        lecteur = csv.DictReader(f)

        with smtplib.SMTP("smtp.gmail.com", 587) as serveur:
            serveur.starttls()
            serveur.login("ton@email.com", "mot_de_passe_app")

            for contact in lecteur:
                contenu = template.format(**contact)
                msg = MIMEText(contenu, "html")
                msg["Subject"] = sujet
                msg["From"] = "ton@email.com"
                msg["To"] = contact["email"]

                serveur.send_message(msg)
                print(f"Envoyé à {contact['prenom']} ({contact['email']})")

# Template personnalisé
template = (
    '<h2>Bonjour {prenom} !</h2>'
    '<p>Decouvre nos nouvelles formations Python adaptees au marche {pays}.</p>'
)

envoyer_newsletter("contacts.csv", "Nouvelles formations Python !", template)

Script 7 : Tableau de bord météo en temps réel

Un script qui récupère la météo de plusieurs villes via une API gratuite.

import requests

def meteo(ville, api_key):
    url = f"http://api.openweathermap.org/data/2.5/weather?q={ville}&appid={api_key}&units=metric&lang=fr"
    response = requests.get(url)
    data = response.json()

    if response.status_code == 200:
        print(f"
{'='*30}")
        print(f"Météo à {ville}")
        print(f"{'='*30}")
        print(f"Température : {data['main']['temp']}°C")
        print(f"Ressenti : {data['main']['feels_like']}°C")
        print(f"Description : {data['weather'][0]['description']}")
        print(f"Humidité : {data['main']['humidity']}%")

# Vérifier plusieurs villes
villes = ["Paris", "Bamako", "Dakar", "Abidjan"]
for ville in villes:
    meteo(ville, "TA_CLE_API")

Comment aller plus loin avec l'automatisation Python

  • Planification : Utilise cron (Linux) ou le Planificateur de tâches (Windows) pour exécuter tes scripts automatiquement
  • Interface graphique : Ajoute une GUI avec tkinter ou PyQt
  • Déploiement cloud : Héberge tes scripts sur un serveur pour qu'ils tournent 24/7
  • APIs : Connecte tes scripts à des services comme Slack, Notion, Google Sheets

Conclusion

L'automatisation avec Python est une compétence qui te fait gagner du temps et de l'argent. Ces 7 scripts ne sont que le début : les possibilités sont infinies. Apprends Python si ce n'est pas encore fait, et commence à automatiser ta vie dès aujourd'hui.

Tu veux apprendre à créer des scripts d'automatisation sur mesure pour ton business ? Découvre nos formations Python ou contacte-nous pour un développement personnalisé.