Maison > développement back-end > Tutoriel Python > Comment puis-je rechercher de manière récursive des fichiers en Python à l'aide de « pathlib », « glob » et « os.walk » ?

Comment puis-je rechercher de manière récursive des fichiers en Python à l'aide de « pathlib », « glob » et « os.walk » ?

DDD
Libérer: 2024-12-11 20:16:15
original
310 Les gens l'ont consulté

How Can I Recursively Find Files in Python Using `pathlib`, `glob`, and `os.walk`?

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

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

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

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal