Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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().
