Python Create Directory if Not Exists: A Step-by-Step Guide

Creating a directory in Python is a task that may seem daunting at first, but it’s actually quite simple. The process involves using Python’s built-in ‘os’ module to check if a directory exists and, if not, to create it. This is an essential skill for anyone working with file systems in Python. In just a few lines of code, you can ensure that your program has the necessary folders to run smoothly.

Step by Step Tutorial: Python Create Directory if Not Exists

Let’s walk through the steps to create a directory in Python only if it does not already exist. This ensures that we don’t overwrite any existing data.

Step 1: Import the os module

First, we need to import Python’s built-in ‘os’ module.

The ‘os’ module in Python provides a way of using operating system dependent functionality like reading or writing to a file system. By importing ‘os’, we gain access to functions that will help us interact with the directory structure of our operating system.

Step 2: Define the directory path

Next, we need to define the path of the directory we want to create.

The path can be an absolute path that specifies the exact location on your file system or a relative path that is relative to the directory from which your Python script is run. Make sure the path is a string.

Step 3: Check if the directory exists

Before creating the directory, we need to check if it already exists.

We use the ‘os.path.exists()’ method from the ‘os’ module to check if the directory exists. It returns True if the directory exists and False if it does not.

Step 4: Create the directory if it does not exist

If the directory does not exist, we will create it using ‘os.makedirs()’.

The ‘os.makedirs()’ function creates a directory at the specified path. It also creates all intermediate-level directories if they don’t exist, so you don’t have to create each level of the directory tree individually.

After completing these steps, the specified directory will either be confirmed to exist or will be created. This is handy for setting up file structures or ensuring that your program can save data to the correct location.

Tips: Python Create Directory if Not Exists

  • Use try-except blocks to handle any potential errors that could occur when checking for or creating a directory.
  • Use ‘os.path.isdir()’ instead of ‘os.path.exists()’ if you want to specifically check for a directory and not just any file.
  • Remember to use proper exception handling when dealing with file system operations to avoid crashing your program.
  • Consider setting directory paths in a configuration file or environment variable for easier management and flexibility.
  • Use ‘os.path.join()’ to create your file paths in order to make your scripts cross-platform.

Frequently Asked Questions

What is the difference between ‘os.makedirs()’ and ‘os.mkdir()’?

‘os.mkdir()’ creates a single directory, while ‘os.makedirs()’ can create multiple directories in a path (intermediate directories).

Can I create a directory with specific permissions?

Yes, you can use the mode parameter in ‘os.makedirs()’ to set specific permissions for the new directory.

What happens if I try to create a directory that already exists?

If you use ‘os.makedirs()’ and the directory exists, a ‘FileExistsError’ will be raised. To avoid this, always check if the directory exists first or use the exist_ok parameter.

How do I create a directory in the current working directory?

You can use a dot ‘.’ as the path: os.makedirs('./new_directory').

Is it possible to create a temporary directory with Python?

Yes, Python’s ‘tempfile’ module provides a ‘TemporaryDirectory()’ function for this purpose.


  1. Import the os module
  2. Define the directory path
  3. Check if the directory exists
  4. Create the directory if it does not exist


Mastering file system operations is crucial for any Python developer. Whether you’re working on a small script or a large application, knowing how to handle directories efficiently can save you time and prevent errors. Creating a directory if it does not exist is a common task that can be quickly accomplished with Python’s ‘os’ module. By following the steps outlined in this article, you now have a blueprint for setting up directories in future projects. Remember, error handling is key, so always check for existing files and handle exceptions appropriately. With these skills in hand, you can now confidently tackle more complex file system tasks in Python.