makedirs për të krijuar drejtori të thella hierarkike në mënyrë rekursive në Python

biznes

Gabim gjatë krijimit të një drejtorie të re me os.mkdir() në një direktori që nuk ekziston

os.mkdir()Kjo është metoda e përdorur për të krijuar një direktori (dosje) në Python. Nëse përpiqeni të krijoni një direktori të re në një drejtori që nuk ekziston, do të ndodhë një gabim.(FileNotFoundError)

import os

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

Krijo direktori në mënyrë rekursive me os.madeirs()

Nëse përdorni os.makedirs() në vend të os.mkdir(), ai do të krijojë një direktori të ndërmjetme, kështu që ju mund të krijoni në mënyrë rekursive një drejtori të thellë hierarkike.

os.makedirs('not_exist_dir/new_dir')

Në rastin e këtij shembulli, ai do t’i krijojë të gjitha menjëherë. Është në rregull nëse ka shumë drejtori të reja të ndërmjetme.

  • drejtoria e ndërmjetme:not_exist_dir
  • drejtoria përfundimtare:new_dir

Megjithatë, nëse drejtoria fundore ekziston tashmë, do të ndodhë një gabim.(FileExistsError)

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

Nëse ka një argument exist_ok

Që nga Python 3.2, argumenti exist_ok është shtuar, dhe nëse exist_ok=True, nuk do të ndodhë asnjë gabim edhe nëse drejtoria fundore ekziston tashmë. Nëse drejtoria fundore nuk ekziston, do të krijohet një e re, dhe nëse ekziston, asgjë nuk do të bëhet. Kjo është e përshtatshme sepse nuk keni nevojë të kontrolloni paraprakisht ekzistencën e drejtorisë së terminalit.

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

Nëse argumenti exist_ok mungon

Nëse keni një version më të vjetër të Python dhe nuk keni argumentin exist_ok në os.madeirs, mund të përdorni os.path.exists për të përcaktuar nëse ka apo jo një direktori fundore dhe më pas të krijoni një të re vetëm nëse nuk ka drejtoria e fundit.

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