Bonjour,
Il y a plusieurs façons de chercher les fichiers et dossiers d'une disque. os.walk est le plus complet et a plusieurs avantages, y compris de bien gérer les erreurs, et de permettre plusieurs parcours (top-down et bottom-up). Mais glob.glob est probablement le plus simple. J'ai d'ailleurs un peu creusé son utilisation "récursive" ici: https://www.developpez.net/forums/d1...ive-glob-glob/
Par exemple, pour répondre à la question de ce fil:
Je cherche le dossier "pip" dans le Python installé sous Windows:
1 2 3 4 5 6 7 8 9
| import os
from glob import iglob
repertoire = r"C:\Python39" # mettez la bonne adresse!
motif = "pip" # nom du dossier recherché
for entree in iglob(os.path.join(repertoire, "**", motif), recursive=True):
if os.path.isdir(entree):
print(entree) |
Réponse (chez moi):
C:\Python39\Lib\site-packages\pip
Commentaires:
- j'utilise ici iglob au lieu de glob pour avoir les réponses une à une, et non sous forme de liste
- motif est ici le motif "wildcard" du dossier cherché. Par exemple, on pourrait chercher un dossier commençant par "p": motif="p*". Mais ici, on cherche un nom exact: motif="pip"
- os.path.join(...) permet de construire un chemin en respectant la syntaxe des différents OS (Windows, Linux, OSX)
- os.path.isdir(entree) renvoie True si entree est un dossier (et False si c'est un fichier)
Partager