10 scripts Python qui automatisent votre vie de développeur en 2026
10 scripts Python prêts à l'emploi pour automatiser les tâches répétitives : renommage de fichiers, envoi d'emails, scraping, monitoring. Copier-coller et adapter.
Python est le langage de l'automatisation. En quelques dizaines de lignes, vous pouvez éliminer des heures de travail manuel. Voici 10 scripts que j'utilise vraiment, prêts à être adaptés à votre situation.
1. Renommage en masse de fichiers
import os
from pathlib import Path
def rename_files(folder, old_pattern, new_pattern):
for f in Path(folder).glob(f"*{old_pattern}*"):
new_name = f.name.replace(old_pattern, new_pattern)
f.rename(f.parent / new_name)
print(f"Renommé: {f.name} → {new_name}")
# Exemple: remplacer "IMG_" par "photo_" dans /home/user/Photos
rename_files("/home/user/Photos", "IMG_", "photo_")
2. Surveillance de dossier + alerte email
import time
import smtplib
from email.message import EmailMessage
from pathlib import Path
WATCHED_FOLDER = "/home/user/Downloads"
SMTP_SERVER = "smtp.gmail.com"
EMAIL_FROM = "vous@gmail.com"
EMAIL_TO = "vous@gmail.com"
EMAIL_PASSWORD = os.environ["GMAIL_APP_PASSWORD"]
def send_alert(filename):
msg = EmailMessage()
msg["Subject"] = f"Nouveau fichier : {filename}"
msg["From"] = EMAIL_FROM
msg["To"] = EMAIL_TO
msg.set_content(f"Nouveau fichier détecté : {filename}")
with smtplib.SMTP_SSL(SMTP_SERVER, 465) as s:
s.login(EMAIL_FROM, EMAIL_PASSWORD)
s.send_message(msg)
known_files = set(os.listdir(WATCHED_FOLDER))
while True:
current = set(os.listdir(WATCHED_FOLDER))
new_files = current - known_files
for f in new_files:
print(f"Nouveau fichier: {f}")
send_alert(f)
known_files = current
time.sleep(5)
3. Backup automatique vers un dossier daté
import shutil
import datetime
from pathlib import Path
def backup(source_dir, backup_root):
today = datetime.date.today().isoformat()
dest = Path(backup_root) / today
dest.mkdir(parents=True, exist_ok=True)
shutil.copytree(source_dir, dest / Path(source_dir).name, dirs_exist_ok=True)
print(f"Backup créé: {dest}")
backup("/home/user/projets", "/home/user/backups")
4. Downloader de pages web en masse
import requests
from pathlib import Path
URLS = [
"https://example.com/page1",
"https://example.com/page2",
]
OUTPUT_DIR = Path("/tmp/pages")
OUTPUT_DIR.mkdir(exist_ok=True)
for i, url in enumerate(URLS):
response = requests.get(url, timeout=10)
if response.ok:
filename = OUTPUT_DIR / f"page_{i+1}.html"
filename.write_text(response.text)
print(f"Téléchargé: {url}")
else:
print(f"Erreur {response.status_code}: {url}")
5. Lecture et traitement de CSV volumineux
import csv
from collections import defaultdict
def process_csv(filepath):
stats = defaultdict(float)
with open(filepath, newline="") as f:
reader = csv.DictReader(f)
for row in reader:
category = row.get("category", "unknown")
amount = float(row.get("amount", 0))
stats[category] += amount
return dict(sorted(stats.items(), key=lambda x: x[1], reverse=True))
result = process_csv("transactions.csv")
for cat, total in result.items():
print(f"{cat}: {total:.2f}€")
6. Générateur de mots de passe forts
import secrets
import string
def generate_password(length=20, symbols=True):
chars = string.ascii_letters + string.digits
if symbols:
chars += "!@#$%^&*"
return "".join(secrets.choice(chars) for _ in range(length))
for i in range(5):
print(generate_password(20))
7. Scraper de prix (e-commerce)
import requests
from bs4 import BeautifulSoup
def get_price(url, selector):
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(url, headers=headers, timeout=10)
soup = BeautifulSoup(response.text, "html.parser")
element = soup.select_one(selector)
return element.text.strip() if element else "Non trouvé"
# Adapter le sélecteur CSS à chaque site
price = get_price("https://example.com/produit", ".price-tag")
print(f"Prix: {price}")
8. Conversion PDF → texte
# pip install pypdf2
import PyPDF2
from pathlib import Path
def pdf_to_text(pdf_path):
text = ""
with open(pdf_path, "rb") as f:
reader = PyPDF2.PdfReader(f)
for page in reader.pages:
text += page.extract_text() + "\n"
return text
content = pdf_to_text("document.pdf")
print(content[:500])
9. Resize en masse d'images
# pip install pillow
from PIL import Image
from pathlib import Path
def resize_images(folder, max_width=1200, max_height=800):
for img_path in Path(folder).glob("*.{jpg,jpeg,png}"):
with Image.open(img_path) as img:
img.thumbnail((max_width, max_height), Image.LANCZOS)
img.save(img_path)
print(f"Redimensionné: {img_path.name}")
resize_images("/home/user/photos")
10. Rappels automatiques par email
import schedule
import time
import smtplib
from email.message import EmailMessage
REMINDERS = [
{"time": "09:00", "subject": "Stand-up daily", "body": "N'oublie pas le stand-up à 9h30 !"},
{"time": "17:30", "subject": "Bilan journée", "body": "Pense à logger tes tâches du jour."},
]
def send_reminder(subject, body):
# ... (code email identique au script #2)
print(f"Rappel envoyé: {subject}")
for r in REMINDERS:
schedule.every().day.at(r["time"]).do(send_reminder, r["subject"], r["body"])
while True:
schedule.run_pending()
time.sleep(30)
Comment les adapter à vos besoins
Chaque script est conçu pour être minimal et lisible. Pour les adapter :
- Changez les chemins de fichiers et URLs
- Ajustez les sélecteurs CSS ou patterns regex
- Stockez les credentials dans des variables d'environnement (jamais en dur)
- Ajoutez un
try/exceptpour la robustesse en production
Ces scripts sont des points de départ. La vraie puissance vient quand vous les combinez — par exemple, scraper des prix + envoyer une alerte email quand ça passe sous un seuil.