El módulo OS en Python proporciona funciones para interactuar con el sistema operativo. OS viene bajo los módulos de utilidad estándar de Python. Este módulo proporciona una forma portátil de usar la funcionalidad dependiente del sistema operativo.
Todas las funciones en el módulo os generan OSError en el caso de nombres y rutas de archivo no válidos o inaccesibles, u otros argumentos que tienen el tipo correcto pero que no son aceptados por el sistema operativo.
El método os.makedirs() en Python se usa para crear un directorio de forma recursiva. Eso significa que al crear un directorio hoja si falta algún directorio de nivel intermedio, el método os.makedirs() los creará a todos.
Por ejemplo, considere la siguiente ruta:
/home/User/Documents/GeeksForGeeks/Authors/ihritik
Supongamos que queremos crear el directorio ‘ihritik’ pero el directorio ‘GeeksForGeeks’ y ‘Authors’ no están disponibles en la ruta. Luego , el método os.makedirs() creará todos los directorios no disponibles/faltantes en la ruta especificada. Primero se crearán ‘GeeksForGeeks’ y ‘Authors’ y luego se creará el directorio ‘ihritik’.
Sintaxis: os.makedirs(ruta, modo = 0o777, exist_ok = False)
Parámetro:
ruta : un objeto similar a una ruta que representa una ruta del sistema de archivos. Un objeto similar a una ruta es una string o un objeto de bytes que representa una ruta.
modo (opcional): un valor entero que representa el modo del directorio recién creado. Si se omite este parámetro, se utiliza el valor predeterminado Oo777.
exist_ok (opcional): se utiliza un valor predeterminado Falso para este parámetro. Si el directorio de destino ya existe, se genera un OSError si su valor es falso; de lo contrario, no. Para el valor True deja el directorio inalterado.
Tipo de devolución: este método no devuelve ningún valor.
Código #1: uso del método os.makedirs() para crear un directorio
Python3
# Python program to explain os.makedirs() method # importing os module import os # Leaf directory directory = "ihritik" # Parent Directories parent_dir = "/home/User/Documents/GeeksForGeeks/Authors" # Path path = os.path.join(parent_dir, directory) # Create the directory # 'ihritik' os.makedirs(path) print("Directory '%s' created" %directory) # Directory 'GeeksForGeeks' and 'Authors' will # be created too # if it does not exists # Leaf directory directory = "c" # Parent Directories parent_dir = "/home/User/Documents/GeeksforGeeks/a/b" # mode mode = 0o666 path = os.path.join(parent_dir, directory) # Create the directory # 'c' os.makedirs(path, mode) print("Directory '%s' created" %directory) # 'GeeksForGeeks', 'a', and 'b' # will also be created if # it does not exists # If any of the intermediate level # directory is missing # os.makedirs() method will # create them # os.makedirs() method can be # used to create a directory tree
Producción:
Directory 'ihritik' created Directory 'c' created
Código #2: Errores al usar el método os.makedirs()
Python3
# Python program to explain os.makedirs() method # importing os module import os # os.makedirs() method will raise # an OSError if the directory # to be created already exists # Directory directory = "ihritik" # Parent Directory path parent_dir = "/home/User/Documents/GeeksForGeeks" # Path path = os.path.join(parent_dir, directory) # Create the directory # 'ihritik' os.makedirs(path) print("Directory '%s' created" %directory)
Producción:
Traceback (most recent call last): File "makedirs.py", line 21, in os.makedirs(path) File "/usr/lib/python3.6/os.py", line 220, in makedirs mkdir(name, mode) FileExistsError: [Errno 17] File exists: '/home/User/Documents/GeeksForGeeks/ihritik'
Código #3: Manejo de errores al usar el método os.makedirs()
Python3
# Python program to explain os.makedirs() method # importing os module import os # os.makedirs() method will raise # an OSError if the directory # to be created already exists # But It can be suppressed by # setting the value of a parameter # exist_ok as True # Directory directory = "ihritik" # Parent Directory path parent_dir = "/home/ihritik/Desktop/GeeksForGeeks" # Path path = os.path.join(parent_dir, directory) # Create the directory # 'ihritik' try: os.makedirs(path, exist_ok = True) print("Directory '%s' created successfully" %directory) except OSError as error: print("Directory '%s' can not be created") # By setting exist_ok as True # error caused due already # existing directory can be suppressed # but other OSError may be raised # due to other error like # invalid path name
Producción:
Directory 'ihritik' created successfully
Referencia: https://docs.python.org/3/library/os.html