- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte personlive_helpToutes les questions
Geoffroy Streit
24 mars 2024 - 24 mars 2024 à 19:33
checkConversation résolue
6 réponses
Quelles suggestions de corrections / améliorations pourriez vous me faire sur mon code ?
```:Python # Python 3 script to sort files in dedicated folders according to their type (matching & moving files into subfolders specified in file_ext_dir dictionnary) from pathlib import Path import …
00:00:00 :Ensuite, qu'est-ce qu'on veut faire ? On veut récupérer les fichiers à l'intérieur du dossier.Donc là encore, il y a plein de façons de faire.
00:00:05 :Si jamais vous ne savez pas comment faire ce genre d'opération,et bien une façon très simple d'y remédier,c'est tout simplement d'ouvrir un navigateur internetet de poser la question à votre moteur de recherche favori.
00:00:14 :Donc on pourrait dire par exemple ici qu'on souhaite récupérer tous les fichiersà l'intérieur d'un dossier avec Python.Alors dans ce cas-ci, je vous avais indiqué qu'on pouvait utiliser la librairie Patslib.
00:00:23 :Donc vous avez déjà une petite indication, donc on pourrait dire en anglais.Bien sûr, vous pouvez essayer en français, mais vous aurez beaucoup moins de réponses.
00:00:29 :On peut donc essayer en anglais de direGet all files in directory with Patslib.Donc ce qui est assez explicite, on veut récupérer tous les fichiers dans un dossier avec Patslib.
00:00:39 :Donc je valide pour voir si j'ai quelque chose qui s'affiche.On a comme d'habitude Stack Overflow qui arrive en premier.Donc je vais cliquer ici pour voir les réponses que j'ai à cette question.
00:00:48 :Et là, vous voyez qu'on a déjà une première solution,qui est d'utiliser donc la classe Pats qui est contenue à l'intérieur de Patslib.Donc là, on voit ici le module Patslib et la fonction Glob qui me permet de récupérer tous les fichiers.
00:01:00 :Et ensuite, on voit qu'il utilise ici une compréhension de liste avec IsFile,qui permet de vérifier si un fichier est de type fichier ou dossier.
00:01:08 :Puisque quand on utilise Glob, en fait, on va récupérer à la fois les fichiers et les dossiers.Dans notre cas, on veut récupérer uniquement les fichiers.
00:01:15 :Donc vous voyez, il y a plein de façons de faire. On peut utiliser Glob.On peut utiliser aussi Eterdir.Et là, on retrouve la même façon de faire avec IsFile et IsDir.
00:01:22 :Avec là, dans ce cas-ci, une boucle un peu plus classique.Donc ce n'est pas une compréhension de liste, mais c'est assez similaire.Donc vous voyez, il ne faut vraiment pas hésiter, même si vous n'êtes pas très à l'aise avec l'anglais,d'aller chercher des réponses sur Internet.
00:01:33 :Là, vous voyez qu'on a déjà des bouts de code qu'on peut essayer.Au moins, même si on ne comprend pas forcément tout, on peut décortiquer tout ça.
00:01:38 :Moi, dans mon cas, je sais que je vais pouvoir utiliser Eterdir et IsFileavec une compréhension de liste pour récupérer tout ce dont j'ai besoin.
00:01:45 :Donc je vais revenir ici. Je vais importer le module Patslib.Donc on va le faire au début de notre fichier. On va dire From Patslib.
00:01:51 :Et on va importer cette classe Pats qui va me permettre de créer un objet de type Patslibet qui va me permettre d'utiliser ces différentes méthodes.
00:01:59 :Donc je vais créer une instance de cet objet ici en entourant ma chaîne de caractère.Comme ça, BaseDir ici, ce sera un objet de type Pats.
00:02:05 :Donc ensuite, ce que je vais faire, c'est utiliser la fameuse fonction Eterdir sur cet objet.Donc on va dire files égale à BaseDir point Eterdir.
00:02:14 :Donc si je fais juste ça, si je ne vais pas plus loin, je vais juste faire un print de fileset je vais exécuter mon script.
00:02:19 :Vous voyez qu'on a ce qu'on appelle un générateur.Donc un générateur, qu'est-ce que c'est ? C'est tout simplement une liste si vous voulez.Donc si on veut l'afficher sous forme de liste, on peut faire une liste avec la classe List ici.
00:02:29 :On convertit en fait notre générateur ici en liste avec cette classe List.Et ça va nous donner quelque chose d'un peu plus facile à lire.
00:02:35 :Donc là, on voit qu'on a des POSIXPATS qui est en fait ici une instance de cette classe Pats.Et ça correspond bien à tous les fichiers qui sont à l'intérieur du dossier Data.
00:02:44 :Donc je vais pouvoir boucler à travers tout ça et vérifier si c'est bien des fichierspuisqu'on ne veut pas récupérer les dossiers, on veut juste récupérer les fichiers.
00:02:50 :Donc pour ça, je vais pouvoir faire une compréhension de liste.Donc je vais englober tout ça avec des crochets.Et je vais dire que je veux récupérer f pour f in tout ça,si f.isFile avec un tiré du bas entre les deux.
00:03:04 :Et donc ça, c'est une fonction, donc je l'appelle.Donc ce qu'on fait ici, c'est tout simplement une boucle.Donc on fait une compréhension de liste avec les crochets.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.