Fel när en ny katalog skapas med os.mkdir() i en icke-existerande katalog
os.mkdir()
Detta är den metod som används för att skapa en katalog (mapp) i Python. Om du försöker skapa en ny katalog i en obefintlig katalog uppstår ett fel.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Skapa kataloger rekursivt med os.madeirs()
Om du använder os.makedirs() istället för os.mkdir() skapas en mellanliggande katalog, så att du kan skapa en djup hierarkisk katalog rekursivt.
os.makedirs('not_exist_dir/new_dir')
I det här exemplet skapas alla på en gång. Det är okej om det finns flera nya mellanliggande kataloger.
- mellanliggande katalog:
not_exist_dir
- slutlig katalog:
new_dir
Men om slutkatalogen redan finns kommer ett fel att uppstå.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
Om det finns ett argument exist_ok
Sedan Python 3.2 har argumentet exist_ok lagts till, och om exist_ok=True uppstår inget fel även om slutkatalogen redan finns. Om slutkatalogen inte finns kommer en ny att skapas, och om den finns kommer ingenting att göras. Detta är praktiskt eftersom du inte behöver kontrollera att slutkatalogen existerar i förväg.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Om argumentet exist_ok saknas
Om du har en äldre version av Python och inte har argumentet exist_ok i os.madeirs kan du använda os.path.exists för att avgöra om det finns en slutkatalog eller inte, och sedan skapa en ny endast om det inte finns någon slutkatalog.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')