makedirs para crear directorios xerárquicos profundos de forma recursiva en Python

Negocios

Erro ao crear un novo directorio con os.mkdir() nun directorio inexistente

os.mkdir()Este é o método usado para crear un directorio (cartafol) en Python. Se tentas crear un novo directorio nun directorio inexistente, producirase un erro.(FileNotFoundError)

import os

os.mkdir('not_exist_dir/new_dir')
# FileNotFoundError

Crea directorios recursivamente con os.madeirs()

Se usa os.makedirs() en lugar de os.mkdir(), creará un directorio intermedio, polo que pode crear recursivamente un directorio xerárquico profundo.

os.makedirs('not_exist_dir/new_dir')

No caso deste exemplo, crearaos todos á vez. Está ben se hai varios directorios intermedios novos.

  • directorio intermedio:not_exist_dir
  • directorio final:new_dir

Non obstante, se o directorio final xa existe, producirase un erro.(FileExistsError)

os.makedirs('exist_dir/exist_dir')
# FileExistsError

Se hai un argumento exist_ok

Desde Python 3.2, engadiuse o argumento exist_ok e, se exist_ok=True, non se producirá ningún erro aínda que o directorio final xa exista. Se o directorio final non existe, crearase un novo e, se existe, non se fará nada. Isto é conveniente porque non precisa comprobar previamente a existencia do directorio do terminal.

os.makedirs('exist_dir/exist_dir', exist_ok=True)

Se falta o argumento exist_ok

Se tes unha versión antiga de Python e non tes o argumento exist_ok en os.madeirs, podes usar os.path.exists para determinar se hai ou non un directorio final e, a continuación, crear un novo só se non o hai. directorio final.

if not os.path.exists('exist_dir/exist_dir'):
    os.makedirs('exist_dir/exist_dir')
Copied title and URL