Résultat proche, mais moins précis : j’ai dû ajouter une consigne pour retrouver l’effet décrit.
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 à ExplorerScript qui range le dossier Téléchargements
Du prompt au résultat
Le chemin parcouru
« Ranger des centaines de fichiers par type, sans rien supprimer ni déplacer par erreur. »
Le prompt
Écris un script Python qui range les fichiers du dossier Téléchargements dans des sous-dossiers par type (Images, Documents, Archives). Commence par un mode simulation qui liste les déplacements prévus, ne supprime jamais rien et ignore les fichiers en cours de téléchargement.
Le moment clé
Vérifier le résultat avant de continuer
La simulation a montré que les fichiers en cours de téléchargement auraient été déplacés.
Le résultat obtenu
Le prompt et le résultat1 / 1
Demande
Écris un script Python qui range les fichiers du dossier Téléchargements dans des sous-dossiers par type (Images, Documents, Archives). Commence par un mode simulation qui liste les déplacements prévus, ne supprime jamais rien et ignore les fichiers en cours de téléchargement.
Résultat et choix retenu
Voici le script. Par défaut, il affiche les déplacements prévus sans rien toucher ; ajoutez --appliquer pour les effectuer. Les fichiers en cours de téléchargement sont ignorés et rien n’est jamais supprimé.
from pathlib import Path
import shutil
import sys
TYPES = {
"Images": {".jpg", ".jpeg", ".png", ".webp", ".gif"},
"Documents": {".pdf", ".docx", ".xlsx", ".txt"},
"Archives": {".zip", ".rar", ".7z"},
}
EN_COURS = {".crdownload", ".part", ".tmp"}
def ranger(dossier, appliquer=False):
for fichier in sorted(dossier.iterdir()):
if not fichier.is_file() or fichier.suffix.lower() in EN_COURS:
continue
for nom, extensions in TYPES.items():
if fichier.suffix.lower() in extensions:
cible = dossier / nom / fichier.name
print(fichier.name, "→", f"{nom}/")
if appliquer and not cible.exists():
cible.parent.mkdir(exist_ok=True)
shutil.move(fichier, cible)
break
if __name__ == "__main__":
ranger(Path.home() / "Downloads", appliquer="--appliquer" in sys.argv)
Mis à l’épreuve
Reproductions de la communauté
19 reproductions · 89 % de succès · Dernier essai le 4 nov. 2026
La structure est la bonne ; quelques détails diffèrent et demandent une seconde passe.
2 retours détaillés sur les 19 essais déclarés.
Comparer les modèles testés
| Outil et modèle | Essais | Réussis | Succès |
|---|---|---|---|
| 12 | 11 | 92 % | |
| 5 | 4 | 80 % | |
| 2 | 2 | 100 % |
La discussion
Commentaires
Créez un compte ou connectez-vous pour commenter.

Aucun commentaire pour le moment. Posez une question ou partagez votre retour.