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')