Python : le couteau suisse de l’automatisation
Python est le langage de programmation le plus accessible pour les débutants et le plus utilise pour l’automatisation. Au Sénégal, que vous soyez comptable, marketeur, développeur junior ou entrepreneur, Python vous permet d’automatiser des tâches répétitives en quelques lignes de code : renommer 500 fichiers, extraire des données d’un site web, générer des rapports PDF, envoyer des emails en masse, ou analyser vos ventes.
Installer Python
Sur Windows
# 1. Téléchargez Python depuis python.org (bouton "Download Python 3.12")
# 2. IMPORTANT : cochez "Add Python to PATH" pendant l'installation
# 3. Vérifiez dans le terminal (Win + R > cmd) :
python --version
# Python 3.12.x
pip --version
# pip 24.x
Premier script : « Hello Dakar »
# Créez un fichier hello.py
print("Salam ! Bienvenue dans le monde Python")
print("Nous sommes a Dakar et nous allons automatiser !")
nom = input("Quel est votre prenom ? ")
print(f"Bonsoir {nom}, prêt à coder ?")
# Executez : python hello.py
Les bases en 20 minutes
Variables et types
# Texte (string)
nom_entreprise = "ITSkillsCenter"
ville = "Dakar"
# Nombres
prix_fcfa = 25000
tva = 0.18
prix_ttc = prix_fcfa * (1 + tva) # 29500.0
# Listes
produits = ["Formation WordPress", "Audit SEO", "Site E-commerce"]
produits.append("Application Mobile")
print(len(produits)) # 4
# Dictionnaires
client = {
"nom": "Moussa Diallo",
"téléphone": "+221 77 123 45 67",
"ville": "Dakar",
"solde_fcfa": 150000
}
print(client["nom"]) # Moussa Diallo
Conditions et boucles
# Conditions
montant = 500000
if montant > 1000000:
print("Virement bancaire recommande")
elif montant > 100000:
print("Paiement Wave ou Orange Money")
else:
print("Paiement en especes possible")
# Boucle sur une liste
clients = ["Awa", "Ibrahima", "Fatou", "Ousmane"]
for client in clients:
print(f"Bonjour {client}, merci pour votre confiance !")
# Boucle avec range
for i in range(1, 13):
print(f"Facture du mois {i}/2024")
Fonctions
# Fonction de calcul de TVA sénégalaise
def calculer_ttc(montant_ht, taux_tva=0.18):
tva = montant_ht * taux_tva
ttc = montant_ht + tva
return ttc, tva
prix, taxe = calculer_ttc(100000)
print(f"HT: 100 000 FCFA | TVA: {taxe:,.0f} FCFA | TTC: {prix:,.0f} FCFA")
# HT: 100 000 FCFA | TVA: 18,000 FCFA | TTC: 118,000 FCFA
# Formater en FCFA
def format_fcfa(montant):
return f"{montant:,.0f} FCFA".replace(",", " ")
print(format_fcfa(1500000)) # 1 500 000 FCFA
5 automatisations pratiques
1. Renommer des fichiers en masse
import os
from datetime import datetime
dossier = "C:/Users/MonUser/Documents/Factures"
date = datetime.now().strftime("%Y-%m")
compteur = 1
for fichier in os.listdir(dossier):
if fichier.endswith(".pdf"):
nouveau_nom = f"Facture_{date}_{compteur:03d}.pdf"
ancien = os.path.join(dossier, fichier)
nouveau = os.path.join(dossier, nouveau_nom)
os.rename(ancien, nouveau)
print(f"Renomme: {fichier} -> {nouveau_nom}")
compteur += 1
print(f"{compteur - 1} fichiers renommes !")
2. Envoyer des emails en masse avec Brevo
import sib_api_v3_sdk
# pip install sib-api-v3-sdk
configuration = sib_api_v3_sdk.Configuration()
configuration.api_key["api-key"] = "VOTRE_CLE_API_BREVO"
api = sib_api_v3_sdk.TransactionalEmailsApi(
sib_api_v3_sdk.ApiClient(configuration)
)
# Liste de clients a contacter
clients = [
{"nom": "Awa Ndiaye", "email": "awa@example.com"},
{"nom": "Ibrahima Fall", "email": "ibrahima@example.com"},
]
for client in clients:
email = sib_api_v3_sdk.SendSmtpEmail(
to=[{"email": client["email"], "name": client["nom"]}],
sender={"email": "contact@monentreprise.sn", "name": "Mon Entreprise"},
subject=f"Bonjour {client['nom']} - Offre speciale pour vous",
html_content=f"Bonjour {client['nom']}
Decouvrez notre nouvelle offre...
"
)
api.send_transac_email(email)
print(f"Email envoye a {client['nom']}")
3. Extraire des données d’un site web (Web Scraping)
import requests
from bs4 import BeautifulSoup
import csv
# pip install requests beautifulsoup4
# Exemple : extraire les titres d'articles d'un blog
url = "https://monsite.sn/blog"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
articles = []
for article in soup.find_all("h2", class_="entry-title"):
titre = article.get_text(strip=True)
lien = article.find("a")["href"] if article.find("a") else ""
articles.append({"titre": titre, "lien": lien})
print(f"Trouve: {titre}")
# Sauvegarder en CSV
with open("articles.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=["titre", "lien"])
writer.writeheader()
writer.writerows(articles)
print(f"{len(articles)} articles exportes dans articles.csv")
4. Générer des factures PDF automatiquement
from fpdf import FPDF
# pip install fpdf2
def generer_facture(numéro, client, lignes, total_ht):
pdf = FPDF()
pdf.add_page()
pdf.set_font("Helvetica", "B", 20)
pdf.cell(0, 15, "FACTURE", ln=True, align="C")
pdf.set_font("Helvetica", "", 12)
pdf.cell(0, 8, f"Facture N: {numéro}", ln=True)
pdf.cell(0, 8, f"Client: {client['nom']}", ln=True)
pdf.cell(0, 8, f"NINEA: {client.get('ninea', 'N/A')}", ln=True)
pdf.ln(10)
# Tableau des lignes
pdf.set_font("Helvetica", "B", 10)
pdf.cell(80, 8, "Description", border=1)
pdf.cell(30, 8, "Qte", border=1, align="C")
pdf.cell(40, 8, "Prix unitaire", border=1, align="R")
pdf.cell(40, 8, "Total", border=1, align="R", ln=True)
pdf.set_font("Helvetica", "", 10)
for ligne in lignes:
total_ligne = ligne["qte"] * ligne["prix"]
pdf.cell(80, 8, ligne["desc"], border=1)
pdf.cell(30, 8, str(ligne["qte"]), border=1, align="C")
pdf.cell(40, 8, f'{ligne["prix"]:,} FCFA', border=1, align="R")
pdf.cell(40, 8, f'{total_ligne:,} FCFA', border=1, align="R", ln=True)
tva = int(total_ht * 0.18)
ttc = total_ht + tva
pdf.ln(5)
pdf.cell(150, 8, "Total HT:", align="R")
pdf.cell(40, 8, f'{total_ht:,} FCFA', align="R", ln=True)
pdf.cell(150, 8, "TVA 18%:", align="R")
pdf.cell(40, 8, f'{tva:,} FCFA', align="R", ln=True)
pdf.set_font("Helvetica", "B", 12)
pdf.cell(150, 8, "Total TTC:", align="R")
pdf.cell(40, 8, f'{ttc:,} FCFA', align="R", ln=True)
pdf.output(f"facture_{numéro}.pdf")
print(f"Facture {numéro} generee !")
# Utilisation
client = {"nom": "Entreprise ABC", "ninea": "12345678A"}
lignes = [
{"desc": "Création site WordPress", "qte": 1, "prix": 500000},
{"desc": "Formation SEO (2 jours)", "qte": 1, "prix": 200000},
]
generer_facture("2024-001", client, lignes, 700000)
5. Analyser les ventes avec pandas
import pandas as pd
# pip install pandas openpyxl
# Charger les données de ventes
df = pd.read_excel("ventes_2024.xlsx")
# Aperçu
print(df.head())
print(f"Total des ventes: {df['montant'].sum():,.0f} FCFA")
# Ventes par mois
ventes_mensuelles = df.groupby(df['date'].dt.month)['montant'].sum()
print("\nVentes par mois:")
print(ventes_mensuelles)
# Top 5 des clients
top_clients = df.groupby('client')['montant'].sum().sort_values(ascending=False).head(5)
print("\nTop 5 clients:")
print(top_clients)
# Exporter le rapport
with pd.ExcelWriter("rapport_ventes.xlsx") as writer:
ventes_mensuelles.to_excel(writer, sheet_name="Par mois")
top_clients.to_excel(writer, sheet_name="Top clients")
print("Rapport exporte dans rapport_ventes.xlsx")
Installer les bibliotheques necessaires
# Créer un fichier requirements.txt
requests
beautifulsoup4
fpdf2
pandas
openpyxl
sib-api-v3-sdk
python-dotenv
# Installer toutes les dependances
pip install -r requirements.txt
Planifier vos scripts automatiquement
# Windows : Planificateur de tâches
# 1. Ouvrez le Planificateur de tâches (taskschd.msc)
# 2. Créer une tâche de base
# 3. Programme : python.exe
# 4. Arguments : C:\Scripts\mon_script.py
# 5. Planification : quotidien a 8h
# Ou via PowerShell :
$action = New-ScheduledTaskAction -Execute "python" -Argument "C:\Scripts\rapport_quotidien.py"
$trigger = New-ScheduledTaskTrigger -Daily -At 8AM
Register-ScheduledTask -TaskName "RapportQuotidien" -Action $action -Trigger $trigger
# Linux (cron) :
# crontab -e
# 0 8 * * * /usr/bin/python3 /home/user/scripts/rapport_quotidien.py
Ressources pour apprendre Python au Sénégal
| Ressource | Type | Langue | Coût |
|---|---|---|---|
| Python.org Tutorial | Documentation officielle | Anglais | Gratuit |
| Automate the Boring Stuff | Livre en ligne | Anglais | Gratuit |
| OpenClassrooms Python | Cours en ligne | Français | Gratuit (base) |
| FreeCodeCamp Python | Video YouTube | Anglais | Gratuit |
| Codecademy Python | Interactif | Anglais | Gratuit (base) |
Checklist démarrage Python
- Python 3.12+ installe avec PATH configure
- Éditeur de code installe (VS Code recommande, gratuit)
- Premier script « Hello » execute avec succès
- pip fonctionnel pour installer des bibliotheques
- Au moins une automatisation pratique realisee
- Script planifie automatiquement (Planificateur de tâches ou cron)