Back to Python
2026-03-035 min read

Making a New Directory in Python

Learn Making a New Directory in Python step by step with clear examples and exercises.

Title: Making a New Directory in Python - A full guide

Why This Matters

In programming, creating directories is an essential task that helps you organize your files and projects effectively. You'll learn how to create a new directory using Python, which can be useful for various purposes such as automating file management tasks, writing scripts for web development, or even for data analysis projects.

Prerequisites

Before diving into creating directories with Python, you should have a basic understanding of the following concepts:

  1. Python syntax and variables
  2. Basic file operations in Python (reading, writing, and deleting files)
  3. Understanding of the os module in Python, which provides functionality for interacting with the operating system
  4. Familiarity with the shutil module, which offers high-level functions to handle file and directory operations
  5. Knowledge about exception handling to manage potential errors during directory creation or deletion

Core Concept

To create a new directory using Python, we will use the os module's mkdir() function. However, Note that that this function only creates directories at the current working directory by default. To create a directory in a specific location or path, you must provide the full path. Here is an example of how to use it:

import os

Specify the name and path of the directory you want to create

directory_name = "my_new_directory"

directory_path = "/path/to/my_directory"

Use the mkdir() function to create the directory

os.mkdir(os.path.join(directory_path, directory_name))


In this example, we first import the `os` module, then specify the name and path of the directory we want to create. After that, we use the `os.path.join()` function to concatenate the directory path and name, and pass it as an argument to the `mkdir()` function to create the directory with the specified name and location.

### Creating a Directory with Parent Directories

If the parent directories do not exist, Python will automatically create them when you try to create the desired directory. For example:

import os

Specify the name and path of the directory you want to create

directory_name = "parent/sub_directory"

directory_path = "/path/to/"

Use the mkdir() function to create the directory

os.mkdir(os.path.join(directory_path, directory_name))


In this example, if the `parent` directory does not exist in the specified path, Python will first create it before creating the `sub_directory`.

### Checking If a Directory Exists

Before trying to create a directory, you can check whether it already exists using the `os.path.exists()` function:

import os

Specify the name and path of the directory you want to check

directory_name = "my_new_directory"

directory_path = "/path/to/"

Use the exists() function to check if the directory exists

if not os.path.exists(os.path.join(directory_path, directory_name)):

print("Directory does not exist.")


In this example, we first specify the name and path of the directory we want to check. Then, we use the `exists()` function to check whether the directory exists or not in the specified location. If it doesn't exist, we print a message indicating that the directory does not exist.

Worked Example

Let's create a new directory called "my_new_directory" in a specific path and check if it was created successfully:

import os

Specify the name and path of the directory you want to create

directory_name = "my_new_directory"

directory_path = "/path/to/"

Use the mkdir() function to create the directory

try:

os.mkdir(os.path.join(directory_path, directory_name))

print("Directory has been created.")

except FileExistsError:

print("Failed to create directory due to existing directory.")


In this example, we use a `try-except` block to handle potential errors that may occur when creating the directory. If the directory already exists, the script will print an error message instead of creating a new one.

Common Mistakes

  1. Forgetting to import the os module: Make sure you have imported the os module before using any of its functions.
  2. Not providing a name for the directory: Always specify a name for the directory you want to create.
  3. Running the script in an existing directory with the same name: If you run the script in a directory with the same name as the one you are trying to create, Python will not create the new directory and may display an error message.
  4. Not checking if the directory already exists: Before creating a directory, it's a good practice to check whether it already exists using os.path.exists(). This can help avoid errors and ensure that you are only creating directories when necessary.
  5. Not handling exceptions during directory creation: It is essential to handle potential exceptions that may occur during directory creation, such as FileExistsError or PermissionError, to manage errors gracefully and prevent your script from crashing.

Practice Questions

  1. Write a Python script to create a directory called "my_project" in the current working directory using the os module.
  2. Modify the previous script to create a directory structure like this: parent/sub_directory/sub_sub_directory.
  3. Write a function that takes a directory name and path as arguments, checks if it already exists before creating it, and returns True if the directory is created successfully or False if it already exists. Use exception handling to manage potential errors during directory creation.
  4. Write a script to delete a directory called "my_project" if it exists in the current working directory using the shutil module.
  5. Write a script that creates multiple directories with specified names and paths, handles exceptions during directory creation, and prints success or failure messages for each directory created.

FAQ

Q: What happens if I try to create a directory with a name that already exists?

A: If you try to create a directory with a name that already exists, Python will not create a new directory and may display an error message. To avoid this, you can use the os.path.exists() function to check whether the directory already exists before creating it.

Q: Can I create directories in other locations (like a specific path or a different drive) using Python?

A: Yes, you can specify a full path when creating a directory using the os.mkdir() function. For example: os.mkdir("/path/to/my_directory").

Q: How do I delete a directory in Python?

A: You can use the shutil.rmtree() function to delete a directory and all its contents recursively. Make sure you handle any potential errors, as deleting directories can sometimes be tricky due to file locks or other issues.

Q: How do I create multiple directories with specified names and paths using Python?

A: You can use a loop to create multiple directories by calling the os.mkdir() function for each directory you want to create. Make sure to handle exceptions during directory creation and print success or failure messages for each directory created.

Making a New Directory in Python | Python | XQA Learn