Я пытаюсь создать класс утилиты для перемещения всех файлов в каталоге, в том числе внутри подкаталогов и под-подкаталогов. Я пытался использовать генератор, потому что генераторы классные; однако, я попал в ловушку.
def grab_files(directory):
for name in os.listdir(directory):
full_path = os.path.join(directory, name)
if os.path.isdir(full_path):
yield grab_files(full_path)
elif os.path.isfile(full_path):
yield full_path
else:
print('Unidentified name %s. It could be a symbolic link' % full_path)
Когда генератор достигает директории, он просто дает ячейку памяти нового генератора; это не дает мне содержимое каталога.
Как заставить генератор выводить содержимое каталога вместо нового генератора?
Если у вас уже есть простая библиотечная функция для рекурсивного перечисления всех файлов в структуре каталогов, расскажите мне об этом. Я не собираюсь реплицировать библиотечную функцию.