Maison >développement back-end >Tutoriel Python >Comment récupérer des fichiers de sous-dossiers de manière récursive en Python ?

Comment récupérer des fichiers de sous-dossiers de manière récursive en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-29 23:13:29230parcourir

How to Retrieve Files from Subfolders Recursively in Python?

Récupération récursive de fichiers à partir de sous-dossiers

Énoncé du problème

Un script Python rencontre un problème lors de la recherche récursive de sous-dossiers fichiers avec une extension spécifique. Le script vise à créer une liste des fichiers trouvés, mais les sous-dossiers récupérés par le script sont dans une liste plutôt que de représenter le dossier contenant le fichier localisé.

Solution

Pour résoudre ce problème, le chemin d'accès, représenté par la variable "root" dans le code fourni, doit être utilisé à la place de la variable subFolder. Le chemin d'accès contient le chemin absolu du répertoire où réside le fichier localisé.

Extrait de code

Le code Python révisé suivant démontre l'utilisation correcte du chemin d'accès :

<code class="python">import os
result = [os.path.join(dp, f) for dp, dn, filenames in os.walk(PATH) for f in filenames if os.path.splitext(f)[1] == '.txt']</code>

En employant cette modification, le code parcourra efficacement les sous-dossiers de manière récursive et créera une liste de fichiers avec l'extension souhaitée, chaque chemin de fichier incluant le dossier auquel il appartient.

Options supplémentaires

En plus de la solution principale, des approches alternatives utilisant le module glob ou le module pathlib intégré de Python pour Python 3.4 et supérieur sont également fournies pour offrir une gamme d'options plus complète.

Conclusion

Ce script modifié identifie et répertorie avec précision les fichiers avec l'extension spécifiée dans les dossiers spécifiés et leurs sous-dossiers, fournissant une solution robuste pour la recherche récursive de fichiers en Python.

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!

Déclaration:
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