Résolue

Relecture de mon code

# Itérateurs # Modules # Fichiers

Voici mon code sans regarder la soluce. :D
Toute remarque est la bienvenue. :P

from pathlib import Path

chemin = Path("X:\Docstring\projet tri fichiers\sources_enonce\data")

extensions = {".mp3": "Musique",
              ".wav": "Musique",
              ".flac": "Musique",
              ".avi": "Videos",
              ".mp4": "Videos",
              ".gif": "Videos",  
              ".bmp": "Images",
              ".png": "Images",
              ".jpg": "Images",
              ".txt": "Documents",
              ".pptx": "Documents",
              ".csv": "Documents",
              ".xls": "Documents",
              ".odp": "Documents",
              ".pages": "Documents",
            }

chemin_dossier_source = r"X:\Docstring\projet tri fichiers\sources_enonce\data"
dossier_source = Path(chemin_dossier_source)

def transfert_fichier(chemin_cible):
  dossier_cible = Path(chemin_cible)
  dossier_cible.mkdir(exist_ok=True)
  fichier.rename(dossier_cible / fichier.name)

for fichier in dossier_source.iterdir():  # Sert à itérer sur les fichiers d'un dossier Path
  suffixe = fichier.suffix
  if suffixe in extensions:
    transfert_fichier(fr"X:\Docstring\projet tri fichiers\sources_enonce\data\{extensions[suffixe]}")
  else:
    transfert_fichier(chemin_dossier_source + "\divers")

Salut ! Bravo pour ton travail sur le code. Dans l'ensemble, il a l'air bien organisé et clair. J'ai quelques remarques pour l'améliorer davantage. ;)

  1. Tu peux te débarrasser de la ligne chemin = Path("X:\Docstring\projet tri fichiers\sources_enonce\data"). Tu utilises chemin_dossier_source à la place, donc cette première variable n'est pas nécessaire.

  2. Pour tes chemins de dossier je te conseillle plutôt d'utiliser les "/" c'est plus universel que le "\", tu n'as pas besoin de mettre le "r" pour raw string et ça fonctionne aussi sous windows.

  3. Dans ta fonction transfert_fichier, il faudrait que fichier soit un argument, sinon il ne sera pas accessible. Comme ça:

def transfert_fichier(fichier, chemin_cible):
    ...

Ensuite, assure-toi de passer le fichier lors de l'appel de la fonction, par exemple :

transfert_fichier(fichier, fr"X:\Docstring\projet tri fichiers\sources_enonce\data\{extensions[suffixe]}")

En faisant ces modifications, ton code devrait être fonctionnel et plus lisible. Keep up the good work! :D

A ta dispo si besoin.

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.