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
tkinterouPyQt - 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é.