Fout bij het aanmaken van een nieuwe map met os.mkdir() in een niet-bestaande map
os.mkdir()
Dit is de methode die gebruikt wordt om een directory (map) aan te maken in Python. Als u probeert een nieuwe map aan te maken in een niet-bestaande map, zal er een fout optreden.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Maak recursief mappen aan met os.madeirs()
Als je os.makedirs() gebruikt in plaats van os.mkdir(), zal het een tussenliggende directory maken, zodat je recursief een diepe hiërarchische directory kunt maken.
os.makedirs('not_exist_dir/new_dir')
In het geval van dit voorbeeld worden ze allemaal in één keer aangemaakt. Het is OK als er meerdere nieuwe tussenliggende directories zijn.
- tussenliggende map:
not_exist_dir
- definitieve map:
new_dir
Als de einddirectory echter al bestaat, treedt er een fout op.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
Als er een argument exist_ok
Sinds Python 3.2 is het argument exist_ok toegevoegd, en als exist_ok=True, zal er geen fout optreden, zelfs als de einddirectory al bestaat. Als de einddirectory niet bestaat, wordt er een nieuwe aangemaakt, en als hij wel bestaat, wordt er niets gedaan. Dit is handig omdat je niet van tevoren het bestaan van de einddirectory hoeft te controleren.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Als het argument exist_ok ontbreekt
Als je een oudere versie van Python hebt en het argument exist_ok niet in os.madeirs hebt, kun je os.path.exists gebruiken om te bepalen of er al dan niet een einddirectory is, en dan alleen een nieuwe aanmaken als er geen einddirectory is.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')