Make multiple directories based on a List using Python

Python provides several efficient methods to create multiple directories at once based on a list. This is particularly useful for organizing project files, creating folder structures, or automating directory setup tasks.

Understanding Directory Creation in Python

Python's built-in os module provides functions to interact with the file system. The most common functions for creating directories are os.mkdir() for single directories and os.makedirs() for nested directory structures.

Creating a Single Directory

import os

# Create a single directory
directory_name = "my_directory"
os.mkdir(directory_name)
print(f"Directory '{directory_name}' created successfully")
Directory 'my_directory' created successfully

Method 1: Using a For Loop

The most straightforward approach is to iterate through the list and create each directory individually ?

import os

fruits = ["apple", "banana", "orange", "kiwi"]

for fruit in fruits:
    try:
        os.mkdir(fruit)
        print(f"Directory '{fruit}' created")
    except FileExistsError:
        print(f"Directory '{fruit}' already exists")
Directory 'apple' created
Directory 'banana' created
Directory 'orange' created
Directory 'kiwi' created

Method 2: Using List Comprehension

List comprehension provides a more concise way to create multiple directories ?

import os

fruits = ["apple", "banana", "orange", "kiwi"]

# Using list comprehension with error handling
result = [
    os.makedirs(fruit, exist_ok=True) or f"Created {fruit}" 
    for fruit in fruits
]

print("All directories processed")
All directories processed

Method 3: Using os.makedirs() Function

The os.makedirs() function is more robust as it can create nested directories and handle existing directories gracefully ?

import os

fruits = ["apple", "banana", "orange", "kiwi"]

for fruit in fruits:
    os.makedirs(fruit, exist_ok=True)
    print(f"Directory '{fruit}' ready")
Directory 'apple' ready
Directory 'banana' ready
Directory 'orange' ready
Directory 'kiwi' ready

Creating Nested Directory Structures

You can also create nested directories by specifying paths in your list ?

import os

project_structure = [
    "project/src",
    "project/tests",
    "project/docs",
    "project/config"
]

for path in project_structure:
    os.makedirs(path, exist_ok=True)
    print(f"Created: {path}")
Created: project/src
Created: project/tests
Created: project/docs
Created: project/config

Comparison of Methods

Method Error Handling Nested Directories Best For
For Loop + mkdir() Manual try/except No Simple directory creation
List Comprehension Built-in with makedirs() Yes Concise code
makedirs() Built-in with exist_ok Yes Complex directory structures

Conclusion

Use os.makedirs() with exist_ok=True for the most robust solution. For simple cases, a for loop with os.mkdir() works well. List comprehension offers concise syntax when combined with makedirs().

Updated on: 2026-03-27T09:56:33+05:30

805 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements