Рекурсивная навигация по каталогам с помощью os.walk() в Python
Стремясь создать более структурированные списки каталогов, разработчик попытался изменить свой код для отображения каталогов в виде названий, написанных с заглавной буквы, с пунктирными линиями, обозначающими глубину и файлы под ними. Однако их первоначальный подход дал неполные результаты.
Чтобы решить эту проблему, мы можем использовать атрибут os.sep Python для правильного разграничения компонентов пути. Вот улучшенное решение:
#!/usr/bin/python import os # traverse root directory, and list directories as dirs and files as files for root, dirs, files in os.walk("."): path = root.split(os.sep) print((len(path) - 1) * '---', os.path.basename(root)) for file in files: print(len(path) * '---', file)
В этом исправленном коде мы разделяем путь, используя os.sep в качестве разделителя, который подходит как для файловых систем Windows, так и для Unix. Вычитая 1 из длины пути, мы можем получить глубину текущего уровня и отобразить соответствующее количество пунктирных линий.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3