Cómo crear directorios en Python: os.mkdir vs os.makedirs

1. Introducción

Usar Python permite gestionar archivos y directorios con facilidad. En particular, la creación de directorios es una de las operaciones que se realizan con frecuencia para organizar archivos, realizar copias de seguridad y la generación automática. En esta guía, explicaremos en detalle cómo crear directorios utilizando los módulos os y pathlib. Además, trataremos la creación recursiva de directorios y el manejo de errores, con el objetivo de que sea comprensible incluso para quienes se inician en Python.

2. Creación de directorios con os.mkdir()

Uso básico

os.mkdir() es un método básico para crear un único directorio en la ruta especificada. Sin embargo, esta función tiene limitaciones y provoca un error si el directorio padre no existe. Por ejemplo, el siguiente código es una forma sencilla de crear un directorio.
import os

# Especificar la ruta del directorio a crear
dir_path = './new_directory'

# Crear el directorio
os.mkdir(dir_path)
Con este código se crea un directorio en la ruta indicada, pero si ya existe un directorio con el mismo nombre, se producirá un FileExistsError. Este es un punto a tener en cuenta de os.mkdir().

Manejo de errores

Puedes evitar errores comprobando si el directorio ya existe antes de crearlo. El siguiente código es un ejemplo concreto.
import os

# Especificar la ruta del directorio a crear
dir_path = './new_directory'

# Comprobar si el directorio existe
if not os.path.exists(dir_path):
    os.mkdir(dir_path)
else:
    print(f"El directorio '{dir_path}' ya existe.")
Con este método puedes evitar errores al intentar crear por equivocación un directorio que ya existe。
年収訴求

3. Creación recursiva de directorios con os.makedirs()

Creación recursiva de directorios

os.makedirs() puede considerarse una versión más completa que os.mkdir(). Permite crear varios niveles de directorios de una sola vez, por lo que es posible crear también los directorios intermedios aunque el directorio padre no exista.
import os

# Ruta que incluye directorios intermedios
dir_path = './parent_directory/sub_directory'

# Crear el directorio de forma recursiva
os.makedirs(dir_path)
En este ejemplo, parent_directory y, dentro de él, sub_directory se crean de una sola vez. Incluso si los directorios intermedios no existen, puede crear todos los directorios sin provocar errores, lo que demuestra su gran utilidad。

Manejo de errores con exist_ok=True

os.makedirs() tiene la opción exist_ok, que permite continuar sin error incluso si el directorio ya existe.
import os

dir_path = './parent_directory/sub_directory'

# No genera un error aunque el directorio ya exista
os.makedirs(dir_path, exist_ok=True)
Al usar este método, se evita la necesidad de comprobar de antemano si el directorio existe, lo que simplifica el manejo de errores.

4. Creación de directorios con el módulo pathlib

Creación de directorios con el objeto Path

pathlib es un módulo práctico para manipular rutas del sistema de archivos, disponible a partir de Python 3.4. Al usar el objeto Path(), también mejora la legibilidad del código.
from pathlib import Path

# Especificar la ruta del directorio
dir_path = Path('./new_directory')

# Crear el directorio
dir_path.mkdir()
La ventaja de pathlib es que permite manipular rutas de forma orientada a objetos, lo que hace que el código sea más intuitivo.

Creación recursiva de directorios y manejo de errores

Al usar pathlib para crear directorios de forma recursiva, también es fácil de lograr con solo especificar las opciones.
from pathlib import Path

# Ruta que incluye directorios intermedios
dir_path = Path('./parent_directory/sub_directory')

# Crear junto con los directorios intermedios
dir_path.mkdir(parents=True, exist_ok=True)
En este código, se crean de una sola vez varios niveles de directorios, incluidos los intermedios, y no se produce un error aunque ya existan.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

5. Comprobación de la existencia de directorios y manejo de errores

Comprobar si un directorio ya existe es fundamental para el manejo de errores. Utiliza los módulos os y pathlib para comprobar la existencia de directorios y realizar operaciones con directorios de forma segura.

Método de comprobación con el módulo os

import os

dir_path = './new_directory'

if os.path.exists(dir_path):
    print(f"El directorio '{dir_path}' ya existe.")
else:
    print(f"El directorio '{dir_path}' no existe.")

Método de comprobación con pathlib

from pathlib import Path

dir_path = Path('./new_directory')

if dir_path.exists():
    print(f"El directorio '{dir_path}' ya existe.")
else:
    print(f"El directorio '{dir_path}' no existe.")

6. Conclusión

En este artículo explicamos en detalle diversas formas de crear directorios con Python. Comprendimos las diferencias entre os.mkdir() y os.makedirs(), y también aprendimos a crear directorios de forma recursiva y a manejar errores. Además, vimos que, al aprovechar el nuevo módulo estándar de Python, pathlib, se puede escribir código más simple y legible. Elige el método más adecuado según el caso de uso y realiza operaciones con directorios de forma eficiente.