"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment lire de manière récursive le contenu d'un dossier en Python à l'aide de la fonction os.walk() ?

Comment lire de manière récursive le contenu d'un dossier en Python à l'aide de la fonction os.walk() ?

Publié le 2024-11-08
Parcourir:819

How to Recursively Read Folder Contents in Python Using the os.walk() Function?

Lecture récursive du contenu d'un dossier en Python

En Python, vous pouvez rencontrer des problèmes lorsque vous tentez de parcourir de manière récursive des répertoires pour lire des fichiers texte. Un problème courant est le code qui ne fonctionne que pour un seul niveau de répertoire.

Comprendre la fonction os.walk

Le cœur de la traversée récursive de dossiers en Python réside dans le système d'exploitation Fonction .walk(). Il parcourt un répertoire spécifié et ses sous-répertoires, renvoyant trois valeurs : racine, sous-répertoires et fichiers.

  • root : le répertoire actuel en cours de traitement.
  • subdirs : répertoires dans le répertoire actuel. directory.
  • files : fichiers (pas de répertoires) dans le répertoire actuel.

Optimisation du dossier Traversée

Pour parcourir les répertoires de manière récursive, vous devez parcourir la liste des sous-répertoires renvoyée par os.walk(). Pour chaque sous-répertoire, vous pouvez ensuite appeler os.walk() de manière récursive pour traiter son contenu.

Code Python amélioré

L'exemple de code peut être modifié pour gérer plusieurs répertoires niveaux :

import os
import sys

walk_dir = sys.argv[1]

for root, subdirs, files in os.walk(walk_dir):
    for subdir in subdirs:
        # Process subdirectory: call os.walk() recursively for subdir
        for sub_subdir, sub_subfiles, _ in os.walk(os.path.join(root, subdir)):
            # Process subdirectories and files in subdirectory

Meilleures pratiques supplémentaires

  • Utilisez os.path.join() pour la concaténation des chemins au lieu de la manipulation manuelle des chaînes.
  • Envisagez de convertir les arguments de script en chemins absolus à l'aide de os.path.abspath() pour plus de stabilité.
  • Utilisez l'instruction with pour simplifier la gestion des fichiers et assurer un nettoyage automatique.
Déclaration de sortie Cet article est reproduit le: 1729233616 S'il y a une contrefaçon, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3