Как я могу получить имена подкаталогов в каталоге чисто в 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')
Другие вопросы по тегам