Error when creating a new directory with os.mkdir() in a non-existent directory
os.mkdir()
This is the method used to create a directory (folder) in Python. If you try to create a new directory in a non-existent directory, an error will occur.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Create directories recursively with os.madeirs()
If you use os.makedirs() instead of os.mkdir(), it will create an intermediate directory, so you can recursively create a deep hierarchical directory.
os.makedirs('not_exist_dir/new_dir')
In the case of this example, it will create all of them at once. It is OK if there are multiple new intermediate directories.
- intermediate directory:
not_exist_dir
- final directory:
new_dir
However, if the end directory already exists, an error will occur.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
If there is an argument exist_ok
Since Python 3.2, the argument exist_ok has been added, and if exist_ok=True, no error will occur even if the end directory already exists. If the end directory does not exist, a new one will be created, and if it does exist, nothing will be done. This is convenient because you don't need to check the existence of the terminal directory in advance.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
If the argument exist_ok is missing
If you have an older version of Python and do not have the argument exist_ok in os.madeirs, you can use os.path.exists to determine whether or not there is an end directory, and then create a new one only if there is no end directory.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')