Fehler beim Erstellen eines neuen Verzeichnisses mit os.mkdir() in einem nicht existierenden Verzeichnis
os.mkdir()
Dies ist die Methode, mit der in Python ein Verzeichnis (Ordner) erstellt wird. Wenn Sie versuchen, ein neues Verzeichnis in einem nicht existierenden Verzeichnis zu erstellen, wird ein Fehler auftreten.(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
Verzeichnisse rekursiv mit os.madeirs() erstellen
Wenn Sie os.makedirs() anstelle von os.mkdir() verwenden, wird ein Zwischenverzeichnis erstellt, so dass Sie rekursiv ein tiefes hierarchisches Verzeichnis erstellen können.
os.makedirs('not_exist_dir/new_dir')
Im Fall dieses Beispiels werden alle auf einmal erstellt. Es ist in Ordnung, wenn es mehrere neue Zwischenverzeichnisse gibt.
- Zwischenverzeichnis:
not_exist_dir
- letztes Verzeichnis:
new_dir
Wenn das Endverzeichnis jedoch bereits existiert, wird ein Fehler auftreten.(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
Wenn es ein Argument exist_ok gibt
Seit Python 3.2 wurde das Argument exist_ok hinzugefügt, und wenn exist_ok=True, tritt kein Fehler auf, selbst wenn das Endverzeichnis bereits existiert. Wenn das Endverzeichnis nicht existiert, wird ein neues erstellt, und wenn es existiert, wird nichts unternommen. Das ist praktisch, weil man nicht im Voraus prüfen muss, ob das Endverzeichnis existiert.
os.makedirs('exist_dir/exist_dir', exist_ok=True)
Wenn das Argument exist_ok fehlt
Wenn Sie eine ältere Version von Python haben und das Argument exist_ok in os.madeirs nicht vorhanden ist, können Sie os.path.exists verwenden, um festzustellen, ob es ein Endverzeichnis gibt oder nicht, und dann ein neues Verzeichnis nur dann erstellen, wenn es kein Endverzeichnis gibt.
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')