Нерекурсивный os.walk() Я ищу способ сделать нерекурсивную прогулку os.walk(), как работает os.listdir(). Но мне нужно вернуться так же, как возвращает os.walk(). Любая идея? Спасибо заранее. Ответ 1 next(os.walk(...)) Ответ 2 Добавьте break после имени файла для цикла: for root, dirs, filenames in os.walk(workdir): for fileName in filenames: print (fileName) break #prevent descending into subfolders Это работает, потому что (по умолчанию) os.walk сначала перечисляет файлы в запрошенной папке, а затем переходит в подпапки. Ответ 3 Мое немного более параметризованное решение было бы следующим: for root, dirs, files in os.walk(path): if not recursive: while len(dirs) > 0: dirs.pop() //some fency code here using generated list Изменить: исправления, если проблема/время. Спасибо, @Dirk van Oosterbosch:} Ответ 4 Хорошо, что означало Kamiccolo, было больше в соответствии с этим: for str_dirname, lst_subdirs, lst_files in os.walk(str_path): if not bol_recursive: while len(lst_subdirs) > 0: lst_subdirs.pop()
Ответ 2 Добавьте break после имени файла для цикла: for root, dirs, filenames in os.walk(workdir): for fileName in filenames: print (fileName) break #prevent descending into subfolders Это работает, потому что (по умолчанию) os.walk сначала перечисляет файлы в запрошенной папке, а затем переходит в подпапки.
Ответ 3 Мое немного более параметризованное решение было бы следующим: for root, dirs, files in os.walk(path): if not recursive: while len(dirs) > 0: dirs.pop() //some fency code here using generated list Изменить: исправления, если проблема/время. Спасибо, @Dirk van Oosterbosch:}
Ответ 4 Хорошо, что означало Kamiccolo, было больше в соответствии с этим: for str_dirname, lst_subdirs, lst_files in os.walk(str_path): if not bol_recursive: while len(lst_subdirs) > 0: lst_subdirs.pop()