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.
Optimisation de la traversée des dossiers
Pour parcourir les répertoires de manière récursive, vous doit parcourir la liste des sous-répertoires renvoyés 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 :
<code class="python">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</code>
Bonnes pratiques supplémentaires
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!