python os.walk non-recursive

python - Os.walk no recursivo()



non-recursive (4)

Agregue un break después de los nombres de archivo para el bucle:

for root, dirs, filenames in os.walk(workdir): for fileName in filenames: print (fileName) break #prevent decending into subfolders

Esto funciona porque (por defecto) os.walk primero enumera los archivos en la carpeta solicitada y luego pasa a las subcarpetas.

Estoy buscando una manera de hacer una caminata os.walk() no recursiva, tal como funciona os.listdir() . Pero necesito volver de la misma manera que os.walk() . ¿Alguna idea?

Gracias de antemano.


Bueno, lo que Kamiccolo quería decir era más en línea con esto:

for str_dirname, lst_subdirs, lst_files in os.walk(str_path): if not bol_recursive: while len(lst_subdirs) > 0: lst_subdirs.pop()


Mi solución un poco más parametrizada sería esta:

for root, dirs, files in os.walk(path): if not recursive: while len(dirs) > 0: dirs.pop() //some fency code here using generated list

Editar: corrige, si / mientras que el problema. Gracias, @Dirk van Oosterbosch :}


next(os.walk(...))