Maison > développement back-end > Tutoriel Python > Comment puis-je répertorier de manière récursive tous les fichiers d'un répertoire à l'aide de Python ?

Comment puis-je répertorier de manière récursive tous les fichiers d'un répertoire à l'aide de Python ?

Barbara Streisand
Libérer: 2024-12-19 17:21:10
original
840 Les gens l'ont consulté

How Can I Recursively List All Files in a Directory Using Python?

Itérer récursivement sur les fichiers

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)
Copier après la connexion

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)
Copier après la connexion

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))
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal