makedirs pentru a crea directoare ierarhice adânci în mod recursiv în Python

Afaceri

Eroare la crearea unui nou director cu os.mkdir() într-un director inexistent

os.mkdir()Aceasta este metoda utilizată pentru a crea un director (folder) în Python. Dacă încercați să creați un nou director într-un director inexistent, se va produce o eroare.(FileNotFoundError)

import os

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

Creați directoare în mod recursiv cu os.madeirs()

Dacă utilizați os.makedirs() în loc de os.mkdir(), se va crea un director intermediar, astfel încât să puteți crea recursiv un director ierarhic profund.

os.makedirs('not_exist_dir/new_dir')

În cazul acestui exemplu, le va crea pe toate deodată. Este în regulă dacă există mai multe directoare intermediare noi.

  • director intermediar: not_exist_dir
  • director final: new_dir

Cu toate acestea, dacă directorul final există deja, se va produce o eroare.(FileExistsError)

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

Dacă există un argument exist_ok

Începând cu Python 3.2, a fost adăugat argumentul exist_ok, iar dacă exist_ok=True, nu se va produce nicio eroare chiar dacă directorul final există deja. Dacă directorul final nu există, se va crea unul nou, iar dacă există, nu se va face nimic. Acest lucru este convenabil deoarece nu este nevoie să verificați în prealabil existența directorului terminal.

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

În cazul în care argumentul exist_ok lipsește

Dacă aveți o versiune mai veche de Python și nu aveți argumentul exist_ok în os.madeirs, puteți utiliza os.path.exists pentru a determina dacă există sau nu un director final și apoi să creați unul nou numai dacă nu există un director final.

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