Relecture de mon code
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. ;)
-
Tu peux te débarrasser de la ligne
chemin = Path("X:\Docstring\projet tri fichiers\sources_enonce\data"). Tu utiliseschemin_dossier_sourceà la place, donc cette première variable n'est pas nécessaire. -
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.
-
Dans ta fonction
transfert_fichier, il faudrait quefichiersoit 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 !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte