check if a folder exists in a given path and if not then create a folder there

37,321

Solution 1

The best way would be to use os.makedirs like,

os.makedirs(name, mode=0o777, exist_ok=False)

Recursive directory creation function. Like mkdir(), but makes a intermediate-level directories needed to contain the leaf directory.

The mode parameter is passed to mkdir() for creating the leaf directory; see the mkdir() description for how it is interpreted. To set the file permission bits of any newly-created parent directories you can set the umask before invoking makedirs(). The file permission bits of existing parent directories are not changed.

>>> import os
>>> os.makedirs(path, exist_ok=True) 
# which will not raise an error if the `path` already exists and it
# will recursively create the paths, if the preceding path doesn't exist

or if you are on python3, using pathlib like,

Path.mkdir(mode=0o777, parents=False, exist_ok=False)

Create a new directory at this given path. If mode is given, it is combined with the process’ umask value to determine the file mode and access flags. If the path already exists, FileExistsError is raised.

If parents is true, any missing parents of this path are created as needed; they are created with the default permissions without taking mode into account (mimicking the POSIX mkdir -p command).

If parents is false (the default), a missing parent raises FileNotFoundError. > If exist_ok is false (the default), FileExistsError is raised if the target directory already exists.

If exist_ok is true, FileExistsError exceptions will be ignored (same behavior as the POSIX mkdir -p command), but only if the last path component is not an existing non-directory file.

Changed in version 3.5: The exist_ok parameter was added.

>>> import pathlib
>>> path = pathlib.Path(somepath)
>>> path.mkdir(parents=True, exist_ok=True)

Solution 2

import os
import os.path

folder = "abc"
os.chdir(".")
print("current dir is: %s" % (os.getcwd()))

if os.path.isdir(folder):
    print("Exists")
else:
    print("Doesn't exists")
    os.mkdir(folder)

I hope this helps

Solution 3

pathlib application where csv files need to be created inside a csv folder under parent directory, from a xlsx file with full path (e.g., taken with Path Copy Copy) provided.
If exist_ok is true, FileExistsError exceptions will be ignored, if directory is already created.

from pathlib import Path

wrkfl = 'C:/xlsx/my.xlsx'  # path get from Path Copy Copy context menu
xls_file = Path(wrkfl)
(xls_file.parent / 'csv').mkdir(parents=True, exist_ok=True) 

Solution 4

Getting help from the answers above, I reached this solution

if not os.path.exists(os.getcwd() + '/' + folderName):
    os.makedirs(os.getcwd() + '/' + folderName, exist_ok=True) 

Solution 5

  • Search for folder whether it exists or not, it will return true or false:
    os.path.exists('<folder-path>')
  • Create a new folder: os.mkdir('<folder-path>')

Note: import os will be required to import the module.

Hope you can write the logic using above two functions as per your requirement.

Share:
37,321
Ankit
Author by

Ankit

Updated on November 02, 2021

Comments

  • Ankit
    Ankit about 2 years

    I want to check if a folder by the name "Output Folder" exists at the path

    D:\LaptopData\ISIS project\test\d0_63_b4_01_18_ba\00_17_41_41_00_0e

    if the folder by the name "Output Folder" does not exist then create that folder there.

    can anyone please help with providing a solution for this?

  • user8016906
    user8016906 over 2 years
    You should add how to import the module.
  • han solo
    han solo about 2 years
    @SuperUser It is mkdir instead of makedir :)