как я могу получить имена папок, существующих в каталоге с помощью Python?
Я хочу сохранить все вложенные папки в список для работы с именами после этого, но я не знаю, как читать имена подпапок?
Спасибо за помощь
как я могу получить имена папок, существующих в каталоге с помощью Python?
Я хочу сохранить все вложенные папки в список для работы с именами после этого, но я не знаю, как читать имена подпапок?
Спасибо за помощь
Вы можете использовать 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
Сначала вы должны импортировать os.
import os
files=[]
files = [f for f in sorted(os.listdir(FileDirectoryPath))]
Это даст вам список со всеми файлами в FileDirectoryPath, отсортированным.
Вы можете использовать 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)]
Начиная с 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)
Использовать 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)
Я использую 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)