Имена папок Python в каталоге

как я могу получить имена папок, существующих в каталоге с помощью Python?

Я хочу сохранить все вложенные папки в список для работы с именами после этого, но я не знаю, как читать имена подпапок?

Спасибо за помощь

Ответы

Ответ 1

Вы можете использовать os.walk()

# !/usr/bin/python

import os

directory_list = list()
for root, dirs, files in os.walk("/path/to/your/dir", topdown=False):
    for name in dirs:
        directory_list.append(os.path.join(root, name))

print directory_list

РЕДАКТИРОВАТЬ

Если вы хотите только первый уровень, а не "ходить" через подкаталоги, это еще меньше кода:

import os

root, dirs, files = os.walk("/path/to/your/dir").next()
print dirs

На самом деле это не то, что os.walk. Если вы действительно хотите только один уровень подкаталогов, вы также можете использовать os.listdir() например, Янник Амманн:

root='/path/to/my/dir'
dirlist = [ item for item in os.listdir(root) if os.path.isdir(os.path.join(root, item)) ]
print dirlist

Ответ 2

Сначала вы должны импортировать os.

import os
files=[]
files = [f for f in sorted(os.listdir(FileDirectoryPath))]

Это даст вам список со всеми файлами в FileDirectoryPath, отсортированным.

Ответ 3

Вы можете использовать os.listdir() здесь ссылку на документы

Предупреждение возвращает файлы и каталоги

пример:

import os

path = 'pyth/to/dir/'
dir_list = os.listdir(path)

update: вам нужно проверить, являются ли возвращенные имена каталогами или файлами

import os

path = 'pyth/to/dir/'
# list of all content in a directory, filtered so only directories are returned
dir_list = [directory for directory in os.listdir(path) if os.path.isdir(path+directory)]

Ответ 4

Начиная с Python 3.4, вы также можете использовать новый модуль pathlib:

from pathlib import Path

p = Path('some/folder')
subdirectories = [x for x in p.iterdir() if x.is_dir()]

print(subdirectories)

Ответ 5

Использовать os.walk(path)

import os

path = 'C:\\'

for root, directories, files in os.walk(path):
    for directory in directories:
        print os.path.join(root, directory)

Ответ 6

Я использую os.listdir

Получить все имена папок каталога

folder_names = []
for entry_name in os.listdir(MYDIR):
    entry_path = os.path.join(MYDIR, entry_name)
    if os.path.isdir(entry_path):
        folder_names.append(entry_name)

Получить все пути к папке каталога

folder_paths = []
for entry_name in os.listdir(MYDIR):
    entry_path = os.path.join(MYDIR, entry_name)
    if os.path.isdir(entry_path):
        folder_paths.append(entry_path)

Получить все имена файлов каталога

file_names = []
for file_name in os.listdir(MYDIR):
    file_path = os.path.join(MYDIR, file_name)
    if os.path.isfile(file_path):
        file_names.append(file_name)

Получить все пути к файлу каталога

file_paths = []
for file_name in os.listdir(MYDIR):
    file_path = os.path.join(MYDIR, file_name)
    if os.path.isfile(file_path):
        file_paths.append(file_path)