Quiero ejecutar el comando mkdir
como:
mkdir -p directory_name
¿Cuál es el método para hacer eso en Python?
os.mkdir(directory_name [, -p]) didn't work for me.
Puedes probar esto:
# top of the file import os import errno # the actual code try: os.makedirs(directory_name) except OSError as exc: if exc.errno == errno.EEXIST and os.path.isdir(directory_name): pass
Algo como esto:
if not os.path.exists(directory_name): os.makedirs(directory_name)
UPD: como se dice en los comentarios, debe buscar una excepción para la seguridad de subprocesos
try: os.makedirs(directory_name) except OSError as err: if err.errno!=17: raise
Según la documentación , ahora puedes usar esto desde Python 3.2
os.makedirs("/directory/to/make", exist_ok=True)
y no arrojará un error cuando exista el directorio.
Puedes path.mkdir(parents=True, exist_ok=True)
si estás usando pathlib
.
from pathlib import Path directory = Path('./some/nested/directory') direcotry.mkdir(parents=True, exist_ok=True)
parents=True
crea los directorios principales que necesita y exist_ok=True
le dice a mkdir()
que no exist_ok=True
error si el directorio ya existe. Consulte la documentación de pathlib.Path.mkdir
.
¿qué tal este os.system('mkdir -p %s' % directory_name )