Pogreška pri stvaranju novog direktorija s os.mkdir() u nepostojećem direktoriju
os.mkdir()
Ovo je metoda koja se koristi za stvaranje direktorija (mape) u Pythonu. Ako pokušate stvoriti novi direktorij u nepostojećem direktoriju, pojavit će se pogreška.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Kreirajte direktorije rekurzivno s os.madeirs()
Ako koristite os.makedirs() umjesto os.mkdir(), to će stvoriti međudirektorij, tako da možete rekurzivno kreirati duboki hijerarhijski direktorij.
os.makedirs('not_exist_dir/new_dir')
U slučaju ovog primjera, stvorit će ih sve odjednom. U redu je ako postoji više novih međudirektorija.
- međuimenik:
not_exist_dir
- konačni imenik:
new_dir
Međutim, ako krajnji direktorij već postoji, pojavit će se pogreška.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
Ako postoji argument postoji_ok
Od Pythona 3.2, dodan je argument exist_ok, a ako exist_ok=True, neće se pojaviti pogreška čak i ako krajnji direktorij već postoji. Ako krajnji direktorij ne postoji, kreirat će se novi, a ako postoji, ništa se neće učiniti. To je zgodno jer ne morate unaprijed provjeravati postojanje terminalskog imenika.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Ako nedostaje argument exist_ok
Ako imate stariju verziju Pythona i nemate argument exist_ok u os.madeirs, možete koristiti os.path.exists da odredite postoji li ili ne krajnji direktorij, a zatim kreirate novi samo ako ne postoji krajnji imenik.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')