Ce script Python de 15 lignes automatise une tâche que beaucoup font encore à la main chaque jour

21 juil. 2026

Ce script Python de 15 lignes automatise une tâche que beaucoup font encore à la main chaque jour

Ranger des dossiers, préfixer des factures par leur date, ordonner des photos ou des exports comptables : renommer des fichiers un par un reste une habitude étonnamment répandue. C’est répétitif, sujet aux fautes de frappe, et rien ne garantit que deux fichiers ne finiront pas avec le même nom. Or la bibliothèque standard de Python suffit à confier ce travail à la machine, sans installer quoi que ce soit. Voici un petit programme complet, pensé pour être lisible et prudent avant d’être malin.

Une corvée quotidienne que l’ordinateur peut faire seul

Le besoin est presque toujours le même : ajouter la date du jour au début de chaque nom de fichier, par exemple pour obtenir 2026-07-21_rapport.pdf. Fait à la souris, ce geste demande de sélectionner, cliquer, taper, valider, puis recommencer. Répété sur vingt ou trente éléments, il devient une source d’erreurs. L’idée ici est simple : décrire la règle une seule fois, et laisser le script l’appliquer à tout un dossier de façon cohérente.

Le script complet, en Python standard

Copiez ce code dans un fichier nommé prefixe_date.py, à côté du dossier à traiter :

from pathlib import Path
from datetime import date

DOSSIER = Path("mes_fichiers")
DRY_RUN = True
prefixe = date.today().isoformat() + "_"

for fichier in sorted(DOSSIER.iterdir()):
    if not fichier.is_file() or fichier.name.startswith(prefixe):
        continue
    cible = fichier.with_name(prefixe + fichier.name)
    if cible.exists():
        print(f"Collision ignoree : {cible.name}")
        continue
    print(f"{fichier.name} -> {cible.name}")
    if not DRY_RUN:
        fichier.rename(cible)

Lancez-le depuis un terminal avec python prefixe_date.py. Tel quel, il n’écrit rien : il se contente d’afficher ce qu’il ferait.

Ce que fait chaque partie du code

La classe Path de pathlib représente un chemin de façon portable entre Windows, macOS et Linux. DOSSIER.iterdir() parcourt son contenu, et sorted(...) garantit un ordre stable et prévisible d’un passage à l’autre. Le test fichier.is_file() écarte les sous-dossiers, tandis que startswith(prefixe) évite de préfixer deux fois un fichier déjà traité.

La méthode with_name reconstruit un nom cible sans toucher au reste du chemin. Le point le plus important tient dans la ligne if cible.exists() : c’est la protection contre les collisions. Si un fichier portant déjà le nom d’arrivée existe, le script l’ignore au lieu d’écraser des données. Enfin, rename n’est appelé que lorsque DRY_RUN vaut False.

Tester sans rien casser

La variable DRY_RUN = True est votre filet de sécurité. Gardez-la ainsi pour un premier essai : vous verrez la liste des renommages prévus, sans modification réelle. Vérifiez que les correspondances affichées vous conviennent, puis, seulement à ce moment, passez la valeur à False pour appliquer les changements. Par prudence, travaillez d’abord sur une copie du dossier, ou sur un répertoire de test contenant quelques fichiers factices. Ainsi, même une règle mal formulée reste sans conséquence.

Adapter le script à vos besoins

La structure se prête à de nombreuses variantes, en changeant surtout la construction de prefixe ou de cible :

Le principe reste identique : décrire une transformation de nom, prévisualiser, protéger contre l’écrasement, puis exécuter. Une fois cette base comprise, vous pouvez la réutiliser pour des dizaines de tâches de classement, en gardant toujours le réflexe de commencer par un passage en mode simulation. C’est ce cadre prudent, plus que l’astuce elle-même, qui rend l’automatisation fiable au quotidien.

Fabien Delpont

Auteur

Fabien Delpont

Fabien Delpont, développeur et créateur du site Python Doctor.