Parcourir récursivement les structures de répertoires pour répertorier tous les fichiers est un besoin de programmation courant. Dans ce contexte, explorons comment y parvenir efficacement en Python.
Une approche consiste à utiliser la méthode pathlib.Path().rglob(), introduite dans Python 3.5. Il fournit un moyen pratique d'identifier tous les fichiers correspondant à un modèle spécifique dans un répertoire et ses sous-répertoires :
from pathlib import Path for path in Path('src').rglob('*.c'): print(path.name)
Si vous préférez utiliser le module glob, vous pouvez exploiter sa fonction glob() avec le recursive=True argument :
from glob import glob for filename in glob('src/**/*.c', recursive=True): print(filename)
Une autre option, compatible avec les anciennes versions de Python, consiste à utiliser os.walk() pour le parcours récursif et fnmatch.filter() pour le modèle matching :
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))
La technique os.walk() peut s'avérer plus rapide dans les scénarios avec un nombre important de fichiers en raison de la charge moindre associée au module pathlib.
Quelle que soit l'approche que vous choisissez, ces Les méthodes vous aideront efficacement à identifier et répertorier de manière récursive les fichiers dans un répertoire spécifié et ses sous-dossiers.
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!