Рекурсивная функция Python для перечисления всех файлов системы
Привет,
Я пишу программу с использованием python на ubuntu 18.04.
Цель этой программы - перечислить все файлы на компьютере в каждом каталоге.
Для достижения этой цели я использую цикл for и рекурсивное программирование.
Я пишу код ниже:
def listDirectory(RootPath): os.chdir(RootPath) print( '\n\033[31mCurrently at \033[37m'+ os.getcwd()) currentpaths = os.listdir() pathList = [RootPath,currentpaths] print('\n\033[32m pathList: \033[37m') print(pathList) AllPaths.append(pathList) for path in currentpaths: # if the path is a directory crawl it # if the path is not a directory go for the next item try: listDirectory(path) except: pass
проблема вот в чем...
Он становится истинным в первом же каталоге, который он видит.
Но он не возвращается к следующему каталогу.
Это не повторяется, как я ожидаю.
Поэтому он дает мне только три списка путей, которые являются первыми возможными маршрутами, которые он находит.
учитывая корневую тропу
/
он просто идет по этим каталогам
/
/lib
/lib/hdparm
Он не возвращает другие адреса, и заканчивается очень быстро.
Заранее благодарю вас за потраченное время.
Что я уже пробовал:
Я ищу проблему в своем рекурсивном алгоритме.
Maciej Los
Проверить это: Рекурсивный поиск вложенных папок и возврат файлов в список python - Stack Overflow[^]