Maison > développement back-end > Tutoriel Python > Comment puis-je rechercher des fichiers de manière récursive en Python, en tenant compte des différentes versions de Python ?

Comment puis-je rechercher des fichiers de manière récursive en Python, en tenant compte des différentes versions de Python ?

Barbara Streisand
Libérer: 2024-12-11 12:22:11
original
440 Les gens l'ont consulté

How Can I Recursively Find Files in Python, Considering Different Python Versions?

Recherche récursive de fichiers à l'aide de Python

La recherche récursive de tous les fichiers d'un répertoire peut être une tâche précieuse pour organiser et gérer les systèmes de fichiers. Cet article développera des approches alternatives pour cette tâche, en abordant les limites de l'utilisation de glob.glob().

Pathlib.Path().rglob()

Pour Python versions 3.5 et ultérieures, la méthode pathlib.Path().rglob() fournit un moyen pratique de rechercher des fichiers de manière récursive. Il vous permet de parcourir les répertoires et de renvoyer des objets de chemin pour les fichiers qui correspondent à un modèle spécifié.

from pathlib import Path

for path in Path('src').rglob('*.c'):
    print(path.name)
Copier après la connexion

Glob.glob() avec un paramètre récursif

Alternativement, pour versions antérieures de Python, glob.glob() propose un paramètre récursif qui permet une recherche récursive. En le définissant sur True, il explorera les sous-répertoires et renverra les fichiers correspondants.

from glob import glob

for filename in glob('src/**/*.c', recursive=True):
    print(filename)
Copier après la connexion

Os.walk() et Fnmatch.filter()

Pour les plus anciens Les versions Python, os.walk() et fnmatch.filter() fournissent un moyen de parcourir de manière récursive une structure de répertoires et de faire correspondre les fichiers à l'aide d'un simple expression.

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

Cette approche offre des performances plus rapides que pathlib, en particulier pour les grands ensembles de fichiers.

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