@rsytrade

Как рекурсивно обойти файлы?

Где ошибка, почему не принтует путь/файл?
def go(cur):
    for dr in os.listdir(cur):
        abs_path = os.path.join(cur, dr)
        if os.path.isdir(abs_path):
            go(abs_path)
        else:
            if '.doc' in abs_path:
                continue
            yield abs_path

abs_path нужно получить вне функции
for file in go(path):
    print(file)
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
go(abs_path)
Ты не возвращаешь ничего при рекурсивном вызове. Нужно сделать
for subpath in go(abs_path):
    yield subpath

или, что то же самое,
yield from go(abs_path)
Но вообще да, средства рекурсивного обхода уже есть, глянь их заодно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы