Выход в рекурсивной функции

Я пытаюсь сделать что-то со всеми файлами по заданному пути. Я не хочу заранее собирать все имена файлов, а затем что-то делать с ними, поэтому я попробовал следующее:

import os
import stat

def explore(p):
  s = ''
  list = os.listdir(p)
  for a in list:
    path = p + '/' + a
    stat_info = os.lstat(path )
    if stat.S_ISDIR(stat_info.st_mode):
     explore(path)
    else:
      yield path

if __name__ == "__main__":
  for x in explore('.'):
    print '-->', x

Но этот код пропускает каталоги, когда попадает в них, вместо того, чтобы выдавать их содержимое. Что я делаю не так?

52
задан REINSTATE MONICA -Jeremy Banks 7 August 2013 в 13:09
поделиться