"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo leer recursivamente el contenido de una carpeta en Python usando la función os.walk()?

¿Cómo leer recursivamente el contenido de una carpeta en Python usando la función os.walk()?

Publicado el 2024-11-08
Navegar:760

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

Lectura recursiva del contenido de la carpeta en Python

En Python, puede encontrar problemas al intentar recorrer directorios de forma recursiva para leer archivos de texto. Un problema común es el código que funciona solo para un único nivel de directorio.

Comprensión de la función os.walk

El núcleo del recorrido recursivo de carpetas en Python reside en el sistema operativo. Función .walk(). Itera sobre un directorio específico y sus subdirectorios, devolviendo tres valores: raíz, subdirectorios y archivos.

  • raíz: el directorio actual que se está procesando.
  • subdirectorios: directorios dentro del directorio actual directorio.
  • archivos: archivos (no directorios) en el directorio actual.

Optimización del recorrido de carpetas

Para recorrer directorios de forma recursiva, debe recorrer la lista de subdirectorios devueltos por os.walk(). Para cada subdirectorio, puede llamar a os.walk() de forma recursiva para procesar su contenido.

Código Python mejorado

El código de ejemplo se puede modificar para manejar múltiples directorios niveles:

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

Mejores prácticas adicionales

  • Utilice os.path.join() para la concatenación de rutas en lugar de manipulación manual de cadenas.
  • Considere convertir los argumentos del script en rutas absolutas usando os.path.abspath() para mayor estabilidad.
  • Utilice la instrucción with para simplificar el manejo de archivos y garantizar la limpieza automática.
Declaración de liberación Este artículo se reimprime en: 1729233616 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3