Проблема в этой строке кода:
explore(path)
Что это делает?
- звонки
explore
с новым path
explore
работает, создает генератор
- генератор возвращается на место, где
explore(path)
был выполнен . , .
- и отбрасывается
Почему оно выбрасывается? Он не был назначен ни для чего, он не был повторен - он был полностью проигнорирован.
Если вы хотите что-то сделать с результатами, ну, вы должны что-то с ними сделать! ;)
Самый простой способ исправить ваш код:
for name in explore(path):
yield name
Если вы уверены, что понимаете, что происходит, вы, вероятно, захотите использовать os.walk()
.
После перехода на Python 3.3 (при условии, что все работает как запланировано), вы сможете использовать новый синтаксис yield from
, и самый простой способ исправить ваш код на этом этапе будет:
yield from explore(path)