Как я могу получить имена подкаталогов каталога чисто в Python? - PullRequest
1 голос
/ 17 декабря 2009

Я не хочу использовать команды или любой подобный модуль, который использует оболочку Unix. Заранее спасибо ..

Ответы [ 2 ]

2 голосов
/ 17 декабря 2009

Использование 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')
0 голосов
/ 17 декабря 2009

Если вы хотите сделать это рекурсивно, спускаясь по дереву, посещая все каталоги, тогда вы можете использовать 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:\\"))
...