Получение списка всех подкаталогов в текущем каталоге - PullRequest
413 голосов
/ 10 июня 2009

Есть ли способ вернуть список всех подкаталогов в текущем каталоге в Python?

Я знаю, что вы можете сделать это с файлами, но вместо этого мне нужно получить список каталогов.

Ответы [ 23 ]

0 голосов
/ 03 июня 2019

Эта функция с указанным родителем directory рекурсивно перебирает все свои directories и prints все filenames, внутри которых она находится. Слишком полезно.

import os

def printDirectoryFiles(directory):
   for filename in os.listdir(directory):  
        full_path=os.path.join(directory, filename)
        if not os.path.isdir(full_path): 
            print( full_path + "\n")


def checkFolders(directory):

    dir_list = next(os.walk(directory))[1]

    #print(dir_list)

    for dir in dir_list:           
        print(dir)
        checkFolders(directory +"/"+ dir) 

    printDirectoryFiles(directory)       

main_dir="C:/Users/S0082448/Desktop/carpeta1"

checkFolders(main_dir)


input("Press enter to exit ;")

0 голосов
/ 06 мая 2019

Это перечислит все подкаталоги прямо в дереве файлов.

import pathlib


def list_dir(dir):
    path = pathlib.Path(dir)
    dir = []
    try:
        for item in path.iterdir():
            if item.is_dir():
                dir.append(item)
                dir = dir + list_dir(item)
        return dir
    except FileNotFoundError:
        print('Invalid directory')

pathlib является новым в версии 3.4

0 голосов
/ 14 июля 2017

Если вам нужна только верхняя папка списка, пожалуйста, используйте listdir, поскольку обход занимает слишком много времени.

...