Listado de árbol de directorios en Python

Resuelto Matt asked hace 16 años • 21 respuestas

¿Cómo obtengo una lista de todos los archivos (y directorios) en un directorio determinado en Python?

Matt avatar Sep 23 '08 19:09 Matt
Aceptado

Esta es una forma de recorrer cada archivo y directorio en un árbol de directorios:

import os

for dirname, dirnames, filenames in os.walk('.'):
    # print path to all subdirectories first.
    for subdirname in dirnames:
        print(os.path.join(dirname, subdirname))

    # print path to all filenames.
    for filename in filenames:
        print(os.path.join(dirname, filename))

    # Advanced usage:
    # editing the 'dirnames' list will stop os.walk() from recursing into there.
    if '.git' in dirnames:
        # don't go into any .git directories.
        dirnames.remove('.git')
Jerub avatar Sep 23 '2008 12:09 Jerub

Puedes usar

os.listdir(path)

Para referencia y más funciones del sistema operativo, mire aquí:

  • Documentos de Python 2: https://docs.python.org/2/library/os.html#os.listdir
  • Documentos de Python 3: https://docs.python.org/3/library/os.html#os.listdir
rslite avatar Sep 23 '2008 12:09 rslite

Aquí hay una función auxiliar que uso con bastante frecuencia:

import os

def listdir_fullpath(d):
    return [os.path.join(d, f) for f in os.listdir(d)]
giltay avatar Sep 23 '2008 13:09 giltay
import os

for filename in os.listdir("C:\\temp"):
    print  filename
curtisk avatar Sep 23 '2008 12:09 curtisk

Si necesitas habilidades globales, también hay un módulo para eso. Por ejemplo:

import glob
glob.glob('./[0-9].*')

devolverá algo como:

['./1.gif', './2.txt']

Consulte la documentación aquí .

kenny avatar Sep 24 '2012 20:09 kenny