Cómo obtener todos los nombres de archivo en un directorio específico en Python

Como se mencionó en "Operación de nombres de archivo y rutas en Python" , las funciones en el módulo os pueden operar en archivos. A través de la recursividad y las funciones provistas en el módulo os, puede obtener todos los nombres de archivos en el directorio especificado.

1 Proceso básico

El proceso básico de obtener recursivamente todos los nombres de archivos en un directorio específico se muestra en la Figura 1.

Figura 1 Proceso básico

Implementación de 2 funciones

2.1 Definir la función

Defina una función llamada walk.Esta función tiene un parámetro dirname, que indica el directorio actual especificado.El código es el siguiente:

def walk(dirname):

2.2 Obtener y acceder a todos los nombres de subcarpetas y archivos en el directorio actual

Como se mencionó en "Operación de nombres de archivos y rutas en Python", puede usar la función os.listdir() para obtener todos los nombres de subcarpetas y nombres de archivos en el directorio especificado. Por lo tanto, en el contenido de la función walk(), está el siguiente código:

for name in os.listdir(dirname):

El código anterior accede a todos los nombres de subcarpetas y archivos obtenidos por la función os.listdir() a través de un bucle for y los guarda en el nombre de la variable.

2.3 Obtener la ruta absoluta del archivo

Dentro del bucle for, utilice la función os.path.join() para obtener la ruta absoluta del archivo. El código es el siguiente:

path = os.path.join(dirname, name)

Entre ellos, la función os.path.join() es conectar el nombre de la carpeta y el nombre del archivo, el parámetro dirname es el parámetro de la función walk(), que es el nombre de la carpeta, el nombre del parámetro es el subarchivo obtenido por la carpeta de la función os.listdir() o el nombre del archivo. Finalmente, la ruta absoluta obtenida se almacena en la ruta variable.

2.4 Determinar si se trata de un archivo

Dentro del ciclo for, luego de obtener la ruta absoluta, el siguiente paso es determinar si la ruta es un archivo, el código es el siguiente:

if os.path.isfile(path):
   print(path)
else:
   walk(path)

En el código anterior, si la ruta es un archivo, se imprimirá el nombre del archivo; si la ruta no es un archivo, significa que es una subcarpeta, y la función walk() se llama recursivamente para mostrar todo el archivo nombres en la subcarpeta de ruta.

3 llamadas de función

Para obtener todos los nombres de archivo del directorio donde se encuentra el archivo fuente actual de Python, puede usar el siguiente código para lograrlo:

cwd = os.getcwd()
walk(cwd)

Entre ellos, la función os.getcwd() obtiene el directorio donde se encuentra el archivo fuente actual de Python, pasa el directorio como parámetro a la función walk() y obtiene todos los nombres de archivo en el directorio.

4 código completo

El código completo del programa es el siguiente:

import os

def walk(dirname):
    for name in os.listdir(dirname):
        path = os.path.join(dirname, name)

        if os.path.isfile(path):
            print(path)
        else:
            walk(path)

cwd = os.getcwd()
walk(cwd)

Supongo que te gusta

Origin blog.csdn.net/hou09tian/article/details/131498580
Recomendado
Clasificación