- 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
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte personlive_helpToutes les questions
Corentin
13 janvier 2024 - 13 janvier 2024 à 20:04
checkConversation résolue
3 réponses
Suppression de toute la racine
Bonjour ! J'ai fait ce code : ```python import os chemin = "/Users/until/Downloads/pyth/tests" dossier = os.path.join(chemin, "dossier") os.makedirs(dossier, exist_ok= True) if os.path.exists(dossier): os.removedirs(dossier) ``` Cependant lorsque je l'exécute, il supprime …
Yegor
13 février 2023 - 13 février 2023 à 11:53
checkConversation résolue
3 réponses
variante du test existence dossier
Bonjour,ce test fonctionne également if not dossier: os.makedirs(dossier) pour autant est-ce aussi "juste" que le code proposé dans la vidéo ?Merci
Geoffroy Streit
23 janvier 2023 - 23 janvier 2023 à 19:15
checkConversation résolue
4 réponses
remplacement slash par antislash sous os windows dans le chaine chemin par os.pa
Bonjour.Je présume donc du remplacement slash par antislash sous os windows dans le chaine chemin par os.path.join() en plus de la concaténation par \ (Windows si os échéant détecté) au …
00:00:00 :Dans cette partie, on va voir le module OS.Le module OS, on l'utilise notamment pour créer et supprimer des dossiers.Donc ici, je l'ai importé tout en haut de mon script, donc import OS, donc OS en minuscule,et j'ai déclaré une variable chemin qui contient le chemin vers les fichiers sources de la formation.
00:00:19 :Donc j'ai trois dossiers à l'intérieur de ce dossier et un fichier readme ici.Donc je vais vouloir créer un dossier à l'intérieur de ce dossier formation développeur Python.
00:00:29 :La première chose, c'est de récupérer le chemin du dossier qu'on veut créer.Donc ce dossier n'existe pas encore, il va falloir le créer.Pour cela, on va devoir concaténer ce qui est dans la variable chemin avec un nouveau nom de dossier.
00:00:42 :Donc pour ce faire, on va utiliser la fonction join.La fonction join, elle se trouve dans le module OS.pat.Donc on va faire OS.pat.join et on va lui dire ce qu'on veut joindre.
00:00:58 :Donc on pourrait faire une concaténation avec un fstring ou directement avec un plus.Ça marcherait aussi, l'avantage de la fonction join, c'est qu'elle va automatiquement gérer les slashes.
00:01:08 :Vous savez que sur Windows ou sur Mac et Linux, les slashes ne sont pas dans le même sens.Donc ça, c'est quelque chose qui dépend du système d'exploitation que vous utilisezet vous ne pouvez pas savoir d'avance si la personne qui utilise votre script va l'utiliser sur Windows ou sur Mac et Linux.
00:01:24 :Donc pour ça, on va utiliser la fonction join qui va gérer cette différence pour nous.Alors je vais mettre le résultat de cette fonction join dans une variable que je vais appeler dossier.
00:01:33 :Donc je fais dossier égal OS.pat.join chemin et le nom du dossier.Je pourrais en mettre plusieurs comme ça à la suite.Si je veux créer un sous-dossier, j'ai juste à donner un autre argument et mettre par exemple un dossier test ici.
00:01:52 :Donc je sauvegarde, j'exécute le script et on se retrouve bien donc avec notre chemin completet le slash qui a été ajouté automatiquement entre le dossier formation développeur Python et le nom de mon dossier ici.
00:02:04 :Donc j'ai bien le chemin au complet et maintenant je vais pouvoir créer ce dossier.Pour créer un dossier, on va utiliser la fonction makedears.Donc makedears comme ceci, il y a cette fonction qui est disponible et une autre qui s'appelle tout simplement mkdears,et cette fonction, le désavantage qu'elle a, c'est qu'elle ne peut pas créer plusieurs structures de dossiers qui n'existent pas.
00:02:24 :Ce que je veux dire par là, c'est qu'ici on veut créer un seul dossier à l'intérieur de formation développeur Python.Mais si je voulais créer directement une hiérarchie plus importante avec un dossier comme ça, dossier et un dossier test à l'intérieur,et bien là on aurait deux dossiers qui n'existent pas à créer.
00:02:39 :La fonction mkdears, elle ne va pas réussir à créer cette hiérarchie.La fonction mkdears, ça nous permet d'éviter cela et de pouvoir créer directement un dossier à l'intérieur d'un dossier qui n'existe pas.
00:02:49 :Donc si je fais le test ici, je vais mettre dossier comme argument à l'intérieur de makedears, je sauvegarde, j'exécute.Là vous voyez que mon script s'est bien exécuté et si je vais voir ici, j'ai bien un dossier qui a été créé avec un autre dossier test à l'intérieur.
00:03:11 :Donc je réexécute le code et vous voyez qu'il me dit no such file or directory.Donc il n'arrive pas à créer directement cette structure plus complexe.
00:03:19 :Donc nous on va utiliser mkdears et vous allez voir que par défaut, ça y est pas mal mais on a un petit problème.Donc là je le crée une première fois, donc j'ai bien le dossier qui existe mais si j'essaye de relancer le script, on va avoir cette fois-ci une erreur.
00:03:32 :mkdears par défaut, elle ne peut pas créer un dossier qui existe déjà.Alors là on a deux options qui s'offrent à nous, on peut faire tout simplement une structure conditionnelle.
00:03:40 :Donc je vais rajouter un if ici et je vais lui dire d'exécuter en fait cette fonction mkdears uniquement si le dossier n'existe pas.Donc je vais lui dire if not os.path.exist, donc une autre fonction qu'on va utiliser assez souvent,
00:03:52 :cette fonction va nous retourner true si le dossier existe et false s'il n'existe pas.Donc en faisant if not os.path.exist et en lui donnant le nom du dossier, si le dossier n'existe pas, je vais pouvoir le créer.
00:04:14 :Donc le dossier existait déjà et le script n'a pas planté.Si je supprime le dossier et que je réexécute ce script, vous voyez qu'on passe bien à l'intérieur de la structure conditionnelle puisque le dossier n'existe pas et donc on le crée.
00:04:36 :ExistOK comme ceci, on va lui dire true.Donc ça veut dire que même si le dossier existe, ça ne va pas poser de problème, on ne va pas faire planter le script.
00:04:44 :Donc là le dossier existe, je sauvegarde le script et je relance et vous voyez qu'on n'a pas eu de problème.Donc ça c'est une autre façon de faire, c'est à vous de voir ce que vous préférez, soit de passer cet argument, soit de passer par une structure conditionnelle.
00:04:56 :Maintenant qu'on a vu comment créer un dossier, on va voir comment supprimer un dossier.Donc je vais enlever cet argument ici et à la place de makedears, je vais utiliser tout simplement son inverse à savoir removedears.
00:05:07 :Donc là le dossier existe, je sauvegarde le script, je le relance et vous voyez que ça a bien fonctionné, le dossier n'existe plus ici.L'inconvénient de removedears, tout comme makedears, c'est que si le dossier n'existe pas et qu'on essaye de le supprimer, on se retrouve avec une erreur.
00:05:31 :Là malheureusement on n'a pas comme pour makedears un argument existOK qu'on peut mettre à true.Donc il n'y a pas cet argument avec cette fonction et donc on va être obligé pour ce cas-ci de passer par une structure conditionnelle.
00:05:42 :Donc on va dire l'inverse cette fois-ci, c'est-à-dire que si le dossier existe, donc if os.path.exist et on lui donne le dossier,donc s'il existe on le supprime, donc on met ça à l'intérieur de notre structure conditionnelle,donc si le dossier existe on le supprime et s'il n'existe pas et bien on ne passe pas à l'intérieur de cette structure conditionnelle
00:06:00 :et du coup on n'essaye pas de le supprimer et le script ne plante pas.Donc je sauvegarde, je relance mon script, ça marche bien.Si je fais à la place un makedears, donc là je vais copier cette ligne ici pour faire un makedears avant,donc je vais créer le dossier, vérifier ensuite s'il existe et s'il existe le supprimer.
00:06:25 :Donc je vais commenter ces lignes pour déjà le créer.Donc là je lance, voilà il existe bien ici et ensuite je vais enlever cette ligne de codeet tout simplement enlever les commentaires ici pour voir si ça marche bien.
00:06:37 :Donc je relance le script et là vous voyez qu'il a bien été supprimé.Donc voilà pour ces trois fonctions, quatre en fait avec existe,donc on a la fonction os.pats.join qui nous permet de joindre ensemble des noms de dossiers,
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.