Skip to content Skip to sidebar Skip to footer

Python Folder Names In The Directory

how can i get the folder names existing in a directory using Python ? I want to save all the subfolders into a list to work with the names after that but i dont know how to read th

Solution 1:

You can use os.walk()

# !/usr/bin/python

import os

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

print directory_list

EDIT

If you only want the first level and not actually "walk" through the subdirectories, it is even less code:

import os

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

This is not really what os.walk is made for. If you really only want one level of subdirectories, you can also use os.listdir() like Yannik Ammann suggested:

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

Solution 2:

Starting with Python 3.4, you can also use the new pathlib module:

from pathlib import Path

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

print(subdirectories)

Solution 3:

You can use os.listdir()here a link to the docs

Warning returns files and directories

example:

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

update: you need to check if the returned names are directories or files

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

Solution 4:

You should import os first.

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

This would give you list with all files in the FileDirectoryPath sorted.

Solution 5:

I use os.listdir

Get all folder names of a directory

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

Get all folder paths of a directory

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

Get all file names of a directory

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

Get all file paths of a directory

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

Post a Comment for "Python Folder Names In The Directory"