- Create a directory in Python
- Using os.mkdir()
- Using os.makedirs()
- Python os mkdir fileexistserror
- # FileExistsError: [Errno 17] File exists in Python
- # Set the exist_ok argument to True when calling makedirs()
- # Using a try/except statement to handle the error
- # Checking if a path exists
- Python os mkdir fileexistserror
Create a directory in Python
The OS module in Python provides functions for interacting with the operating system. OS comes under Python’s standard utility modules. This module provides a portable way of using operating system dependent functionality. The os and os.path modules include many functions to interact with the file system. All functions in os module raise OSError in the case of invalid or inaccessible file names and paths, or other arguments that have the correct type but are not accepted by the operating system.
There are different methods available in the OS module for creating a director. These are –
Using os.mkdir()
os.mkdir() method in Python is used to create a directory named path with the specified numeric mode. This method raise FileExistsError if the directory to be created already exists.
Parameter:
path: A path-like object representing a file system path. A path-like object is either a string or bytes object representing a path.
mode (optional): A Integer value representing mode of the directory to be created. If this parameter is omitted then default value Oo777 is used.
dir_fd (optional): A file descriptor referring to a directory. The default value of this parameter is None.
If the specified path is absolute then dir_fd is ignored. Note: The ‘*’ in parameter list indicates that all following parameters (Here in our case ‘dir_fd’) are keyword-only parameters and they can be provided using their name, not as positional parameter. Return Type: This method does not return any value.
Directory 'GeeksforGeeks' created Directory 'Geeks' created
Traceback (most recent call last): File "gfg.py", line 18, in os.mkdir(path) FileExistsError: [WinError 183] Cannot create a file when that file / /already exists: 'D:/Pycharm projects/GeeksForGeeks'
[WinError 183] Cannot create a file when that file/ /already exists: 'D:/Pycharm projects/GeeksForGeeks'
Using os.makedirs()
os.makedirs() method in Python is used to create a directory recursively. That means while making leaf directory if any intermediate-level directory is missing, os.makedirs() method will create them all.
For example, consider the following path:
D:/Pycharm projects/GeeksForGeeks/Authors/Nikhil
Suppose we want to create directory ‘Nikhil’ but Directory ‘GeeksForGeeks’ and ‘Authors’ are unavailable in the path. Then os.makedirs() method will create all unavailable/missing directories in the specified path. ‘GeeksForGeeks’ and ‘Authors’ will be created first then ‘Nikhil’ directory will be created.
Parameter:
path: A path-like object representing a file system path. A path-like object is either a string or bytes object representing a path.
mode (optional): A Integer value representing mode of the newly created directory. If this parameter is omitted then the default value Oo777 is used.
exist_ok (optional): A default value False is used for this parameter. If the target directory already exists an OSError is raised if its value is False otherwise not. Return Type: This method does not return any value.
Python os mkdir fileexistserror
Last updated: Feb 17, 2023
Reading time · 2 min
# FileExistsError: [Errno 17] File exists in Python
The Python «FileExistsError: [Errno 17] File exists» occurs when we try to create a directory that already exists.
To solve the error, set the exist_ok keyword argument to True in the call to the os.makedirs() method, e.g. os.makedirs(dir_name, exist_ok=True) .
Here is an example of how the error occurs.
Copied!import os dir_name = 'my_dir' # ⛔️ FileExistsError: [Errno 17] File exists: 'my_dir' os.makedirs(dir_name)
The my_dir directory already exists, so a FileExistsError is raised.
# Set the exist_ok argument to True when calling makedirs()
One way to resolve the error is to set the exist_ok keyword argument to True .
Copied!import os dir_name = 'my_dir' os.makedirs(dir_name, exist_ok=True)
Make sure to use the os.makedirs() method, and not os.makedir() as the latter doesn’t take a exist_ok keyword argument.
If exist_ok is set to True , you won’t get a FileExistsError if the target directory already exists.
The value for the exist_ok parameter is set to False by default.
# Using a try/except statement to handle the error
Alternatively, you can use a try/except statement to handle the FileExistsError .
Copied!import os dir_name = 'my_dir' try: os.makedirs(dir_name) except FileExistsError: print('The directory already exists')
We try to create the directory in the try block and if a FileExistsError is raised, the except block is run.
You can use the pass statement if you don’t want to handle the error in any way.
Copied!import os dir_name = 'my_dir' try: os.makedirs(dir_name) except FileExistsError: pass
The pass statement does nothing and is used when a statement is required syntactically but the program requires no action.
The os.makedirs method is used for recursive directory creation.
It makes all the intermediate-level directories needed to contain the nested directory.
Setting the exist_ok keyword argument to True makes it so the method doesn’t raise an error if a directory with the specified name already exists.
The exist_ok keyword argument is set to False by default.
# Checking if a path exists
If you need to check if a path exists, use the os.path.exists() method.
Copied!import os path = r'/home/borislav/Desktop/bobbyhadz_python/' # 👇️ True print(os.path.exists(os.path.dirname(path))) # 👇️ /home/borislav/Desktop/bobbyhadz_python print(os.path.dirname(path))
The os.path.exists() method returns True if the provided path exists and False otherwise.
We also used the os.path.dirname method to get the directory name of the path.
You can use an if statement to check if the directory of the given path exists or does not exist.
Copied!import os path = r'/home/borislav/Desktop/bobbyhadz_python/my_dir' if not os.path.exists(os.path.dirname(path)): print('The path does not exist') os.makedirs(os.path.dirname(path)) else: print('The path already exists')
The if statement checks if the path doesn’t exist.
If the condition is met, we use the os.path.makedirs method to create the directory.
You can also wrap the if/else statements in a try/except statement.
Copied!import os path = r'/home/borislav/Desktop/bobbyhadz_python/my_dir' try: if not os.path.exists(os.path.dirname(path)): print('The path does not exist') os.makedirs(os.path.dirname(path)) else: print('The path already exists') except OSError: print('An OSError exception occurred')
If an OSError exception is raised at any point, it gets handled by the except block.
The OSError exception is a parent class to many other exceptions, such as FileExistsError and FileNotFoundError .
I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
Python os mkdir fileexistserror
- Python | os.ctermid() method
- Python | os.environ object
- Python os.chdir() method
- Python | os.fchdir() method
- Python | os.getcwd() method
- Python | os.getenv() method
- Python | os.get_exec_path() method
- Python | os.geteuid() and seteuid() method
- Python | os.getgrouplist() method
- Python | os.getgroups() method
- Python | os.getlogin() method
- Python | os.getpgid() method
- Python | os.getpgrp() method
- Python | os.getpid() method
- Python | os.getppid() method
- Python | os.getresuid() and os.setresuid() method
- Python | os.getuid() and os.setuid() method
- Python | os.setregid() method
- Python | os.setreuid() method
- Python | os.setgroups() method
- Python | os.getsid() method
- Python | os.strerror() method
- Python | os.supports_bytes_environ object
- Python | os.umask() method
- Python | os.link() method
- Python | os.listdir() method
- Python | os.mkdir() method
- Python | os.makedirs() method
- Python | os.mkfifo() method
- Python | os.major() method
- Python | os.minor() method
- Python | os.makedev() method
- Python | os.readlink() method
- Python | os.remove() method
- Python | os.removedirs() method
- Python | os.rename() method
- Python | os.renames() method
- Python – os.replace() method
- Python | os.rmdir() method
- Python | os.scandir() method
- Python | os.stat() method
- Python | os.statvfs() method
- Python | os.sync() method
- Python | os.truncate() method
- Python | os.unlink() method
- os.walk() in Python
- Python | os.mkdir() method
- Python | os.abort() method
- Python | os._exit() method
- Python | os.fork() method
- Python | os.kill() method
- Python | os.nice() method
- Python | os.system() method
- Python | os.times() method
- Python | os.wait() method
- Python | os.mkdir() method
- Python | os.open() method
- Python | os.get_blocking() method
- Python | os.isatty() method
- Python | os.openpty() method
- Python | os.pipe() method
- Python | os.pipe2() method
- Python | os.pread() method
- Python | os.write() method
- Python | os.pwrite() method
- Python | os.read() method
- Python | os.sendfile() method
- Python | os.set_blocking() method
- Python | os.ctermid() method
- Python | os.environ object
- Python os.chdir() method
- Python | os.fchdir() method
- Python | os.getcwd() method
- Python | os.getenv() method
- Python | os.get_exec_path() method
- Python | os.geteuid() and seteuid() method
- Python | os.getgrouplist() method
- Python | os.getgroups() method
- Python | os.getlogin() method
- Python | os.getpgid() method
- Python | os.getpgrp() method
- Python | os.getpid() method
- Python | os.getppid() method
- Python | os.getresuid() and os.setresuid() method
- Python | os.getuid() and os.setuid() method
- Python | os.setregid() method
- Python | os.setreuid() method
- Python | os.setgroups() method
- Python | os.getsid() method
- Python | os.strerror() method
- Python | os.supports_bytes_environ object
- Python | os.umask() method
- Python | os.link() method
- Python | os.listdir() method
- Python | os.mkdir() method
- Python | os.makedirs() method
- Python | os.mkfifo() method
- Python | os.major() method
- Python | os.minor() method
- Python | os.makedev() method
- Python | os.readlink() method
- Python | os.remove() method
- Python | os.removedirs() method
- Python | os.rename() method
- Python | os.renames() method
- Python – os.replace() method
- Python | os.rmdir() method
- Python | os.scandir() method
- Python | os.stat() method
- Python | os.statvfs() method
- Python | os.sync() method
- Python | os.truncate() method
- Python | os.unlink() method
- os.walk() in Python
- Python | os.mkdir() method
- Python | os.abort() method
- Python | os._exit() method
- Python | os.fork() method
- Python | os.kill() method
- Python | os.nice() method
- Python | os.system() method
- Python | os.times() method
- Python | os.wait() method
- Python | os.mkdir() method
- Python | os.open() method
- Python | os.get_blocking() method
- Python | os.isatty() method
- Python | os.openpty() method
- Python | os.pipe() method
- Python | os.pipe2() method
- Python | os.pread() method
- Python | os.write() method
- Python | os.pwrite() method
- Python | os.read() method
- Python | os.sendfile() method
- Python | os.set_blocking() method