Как я могу получить имена подкаталогов в каталоге чисто в Python?
Я не хочу использовать команды или любой подобный модуль, который использует оболочку Unix. Заранее спасибо..
2 ответа
Решение
Если вы хотите сделать это рекурсивно, спускаясь по дереву, посещая все каталоги, тогда вы можете использовать os.walk следующим образом:
for root, directories, files in os.walk("c:\\"):
doSomething
Если вам нужны только подкаталоги, вы можете один раз вызвать walk:
directories = os.walk("c:\\").next()[1]
Или сделайте что-то вроде фильтра (прогулка более стильная / переносная):
filter(lambda x: os.path.isdir("c:\\"+ x), os.listdir("c:\\"))
Использование os.walk()
:
import os, os.path
def walk_directories(src):
for root, dirs, files in os.walk(src):
for dir in dirs:
print os.path.join(root, dir)
walk_directories(r'c:\temp')