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