Recherche de fichiers de manière récursive : exploration de pathlib.rglob(), glob.glob() et os.walk()
Lorsque vous traitez avec Avec des structures de répertoires complexes, il devient essentiel de localiser les fichiers de manière récursive. Cette tâche peut être simplifiée à l'aide de divers modules et méthodes Python.
Une approche consiste à utiliser pathlib.Path().rglob() introduit dans Python 3.5. Elle permet une recherche récursive simple de fichiers :
from pathlib import Path for path in Path('src').rglob('*.c'): print(path.name)
Alternativement, glob.glob() fournit une autre option pour la liste récursive des fichiers :
from glob import glob for filename in glob('src/**/*.c', recursive=True): print(filename)
Cette méthode également prend en charge les fichiers correspondants commençant par un point (.).
Pour les anciennes versions de Python ou lorsque la vitesse est cruciale, os.walk() offre une solution fiable :
import fnmatch import os matches = [] for root, dirnames, filenames in os.walk('src'): for filename in fnmatch.filter(filenames, '*.c'): matches.append(os.path.join(root, filename))
En choisissant la méthode appropriée en fonction de votre version de Python et de vos exigences de performances, vous pouvez efficacement lister les fichiers de manière récursive dans les répertoires et sous-répertoires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!