Fejl ved oprettelse af en ny mappe med os.mkdir() i en ikke-eksisterende mappe
os.mkdir()
Dette er den metode, der bruges til at oprette en mappe (folder) i Python. Hvis du forsøger at oprette en ny mappe i en ikke-eksisterende mappe, opstår der en fejl.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Opret mapper rekursivt med os.madeirs()
Hvis du bruger os.makedirs() i stedet for os.mkdir(), vil det oprette en mellemliggende mappe, så du kan oprette en dyb hierarkisk mappe rekursivt.
os.makedirs('not_exist_dir/new_dir')
I dette eksempel vil den oprette dem alle på én gang. Det er OK, hvis der er flere nye mellemliggende mapper.
- mellemliggende mappe:
not_exist_dir
- endelig mappe:
new_dir
Men hvis slutmappen allerede findes, opstår der en fejl.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
Hvis der er et argument exist_ok
Siden Python 3.2 er argumentet exist_ok blevet tilføjet, og hvis exist_ok=True, opstår der ingen fejl, selv om slutmappen allerede eksisterer. Hvis slutmappen ikke findes, oprettes en ny, og hvis den findes, sker der intet. Dette er praktisk, fordi du ikke behøver at kontrollere eksistensen af slutmappen på forhånd.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Hvis argumentet exist_ok mangler
Hvis du har en ældre version af Python og ikke har argumentet exist_ok i os.madeirs, kan du bruge os.path.exists til at bestemme, om der er en slutmappe eller ej, og derefter kun oprette en ny, hvis der ikke er en slutmappe.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')