makedirs zum rekursiven Erstellen tiefer hierarchischer Verzeichnisse in Python

Geschäft

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')