La structure est la bonne ; quelques détails diffèrent et demandent une seconde passe.
Cette création n’est pas disponible
Elle a peut-être été retirée par son auteur ou masquée par la modération.
Retour à ExplorerRenommer des photos d’après leur date de prise de vue
Du prompt au résultat
Le chemin parcouru
« Un script qui renomme plusieurs centaines de photos d’après leur date de prise de vue, sans jamais écraser un fichier. »
Le prompt
Écris un script Python qui renomme toutes les photos JPEG d’un dossier d’après leur date de prise de vue (EXIF), au format AAAA-MM-JJ_HHMMSS.jpg. Si deux photos ont la même date, ajoute un suffixe -2, -3. Ajoute un mode simulation, actif par défaut, qui affiche les changements sans rien renommer. N’utilise que Pillow.
Le moment clé
Vérifier le résultat avant de continuer
J’ai lancé la simulation sur une copie de 30 photos, dont deux prises en rafale à la même seconde. Les noms proposés étaient justes et aucune photo n’était écrasée : je n’ai renommé les vraies photos qu’ensuite.
Le résultat obtenu
Le prompt et le résultat1 / 1
Demande
Écris un script Python qui renomme toutes les photos JPEG d’un dossier d’après leur date de prise de vue (EXIF), au format AAAA-MM-JJ_HHMMSS.jpg. Si deux photos ont la même date, ajoute un suffixe -2, -3. Ajoute un mode simulation, actif par défaut, qui affiche les changements sans rien renommer. N’utilise que Pillow.
Résultat et choix retenu
Voici le script. Il lit la date de prise de vue avec Pillow, affiche les nouveaux noms en mode simulation et ne renomme qu’avec l’option --renommer.
from pathlib import Path
from PIL import Image
import sys
DATE_EXIF = 36867 # DateTimeOriginal
def lire_date(photo):
with Image.open(photo) as image:
valeur = image.getexif().get_ifd(0x8769).get(DATE_EXIF)
if not valeur:
return None
return valeur.replace(":", "-", 2).replace(" ", "_").replace(":", "")
def renommer(dossier, simulation=True):
pris = set()
for photo in sorted(Path(dossier).glob("*.jpg")):
date = lire_date(photo)
if not date:
print("Sans date :", photo.name)
continue
nom, n = f"{date}.jpg", 2
while nom in pris or (photo.with_name(nom).exists() and photo.name != nom):
nom, n = f"{date}-{n}.jpg", n + 1
pris.add(nom)
print(photo.name, "→", nom)
if not simulation:
photo.rename(photo.with_name(nom))
if __name__ == "__main__":
renommer(sys.argv[1], simulation="--renommer" not in sys.argv)
Mis à l’épreuve
Reproductions de la communauté
3 reproductions · 67 % de succès · Dernier essai le 3 nov. 2026
1 retour détaillé sur les 3 essais déclarés.
Comparer les modèles testés
| Outil et modèle | Essais | Réussis | Succès |
|---|---|---|---|
| 3 | 2 | 67 % |
La discussion
Commentaires
Créez un compte ou connectez-vous pour commenter.

Précisez peut-être qu’il faut installer Pillow avant le premier lancement : j’ai cherché un moment.
Le suffixe en cas de doublon m’a évité une belle erreur : 40 photos prises en rafale pendant un mariage.