Maison >développement back-end >Tutoriel Python >Comment lire des fichiers de manière récursive et écrire du contenu dans des dossiers Python ?

Comment lire des fichiers de manière récursive et écrire du contenu dans des dossiers Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-18 14:39:02590parcourir

How to Recursively Read Files and Write Content in Python Folders?

Lecture récursive de dossiers en Python

En Python, les opérations du système d'exploitation telles que la recherche de répertoires et de fichiers peuvent être effectuées avec le module os. Pour lire de manière récursive le contenu de fichiers dans une structure de dossiers, nous pouvons utiliser os.walk.

L'extrait ci-dessous illustre comment vous pouvez explorer de manière récursive un dossier et ses sous-répertoires, en ouvrant des fichiers texte pour lire leur contenu :

<code class="python">import os

def read_folder_recursively(rootdir):
    for root, subdirs, files in os.walk(rootdir):
        for folder in subdirs:
            # Define the output file path within the current subfolder
            outfileName = os.path.join(root, folder, "py-outfile.txt")
            with open(outfileName, 'w') as folderOut:
                print("outfileName is " + outfileName)
                for file in files:
                    filePath = os.path.join(root, file)
                    with open(filePath, 'r') as f:
                        toWrite = f.read()
                        print("Writing '" + toWrite + "' to" + filePath)
                        folderOut.write(toWrite)
                    f.close()
            folderOut.close()</code>

Voici un aperçu du code amélioré :

  • Utilisez os.path.join pour concaténer des chemins au lieu d'ajouter des chaînes.
  • Ouvrez les fichiers à l'aide de l'instruction with pour gestion appropriée des fichiers.
  • Assurez-vous d'une indentation et de noms de variables appropriés pour maintenir la lisibilité du code.
  • Éliminez les boucles inutiles qui causaient des problèmes dans le code initial.

Cette mise à jour le code gère correctement plusieurs profondeurs de dossiers, crée dynamiquement des fichiers de sortie dans chaque sous-dossier et écrit efficacement le contenu des fichiers texte dans les fichiers de sortie.

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