management libpath iterdir is_file fileinput delete python file-manager

libpath - python iterdir



Python: cómo encontrar archivos y omitir directorios en os.listdir (4)

Yo uso os.listdir y funciona bien, pero también tengo subdirectorios en la lista, que no es lo que quiero: solo necesito archivos.

¿Qué función necesito usar para eso?

Miré también a os.walk y parece ser lo que quiero, pero no estoy seguro de cómo funciona.


Aquí hay un pequeño y agradable delineador en forma de una lista de comprensión:

[f for f in os.listdir(your_directory) if os.path.isfile(os.path.join(your_directory, f))]

Esto return una list de nombres de archivos dentro del your_directory especificado.


Necesita filtrar directorios; os.listdir() lista todos los nombres en una ruta determinada. Puede usar os.path.isdir() para esto:

basepath = ''/path/to/directory'' for fname in os.listdir(basepath): path = os.path.join(basepath, fname) if os.path.isdir(path): # skip directories continue

os.walk() hace el mismo trabajo bajo el capó; a menos que necesite recurse a subdirectorios, no necesita usar os.walk() aquí.


for fname in os.listdir(''.''): if os.path.isdir(fname): pass # do your stuff here for directory else: pass # do your stuff here for regular file


import os filter(os.path.isfile, os.listdir( os.curdir ))

os.curdir es el directorio actual