Skip to content

Erstellen eines Verzeichnisses mit mkdir(), makedirs() in Python

Python

In Python kann SIE neue Verzeichnisse (Ordner) mit mkdir() und makedirs() im Standardmodul os erstellen.

  • Erstellen Sie ein Verzeichnis:os.mkdir()
  • Erstellen Sie alle Verzeichnisse auf mittlerer Ebene:os.makedirs()

Erstellen Sie ein Verzeichnis:os.mkdir()

os.mkdir() erstellt ein neues Verzeichnis (Ordner).

Geben Sie eine Pfadzeichenfolge für das neue Verzeichnis an. Weitere Informationen zum Bearbeiten von Pfadzeichenfolgen finden Sie im folgenden Artikel.

Die Pfadzeichenfolge kann ein abschließendes Trennzeichen enthalten oder nicht (Schrägstrich für UNIX und Mac, umgekehrter Schrägstrich für Windows).

Die Angabe eines vorhandenen Verzeichnisses löst einen Fehler (FileExistsError) aus.

import os

new_dir_path = 'data/temp/new-dir'

os.mkdir(new_dir_path)

# os.mkdir(new_dir_path)
# FileExistsError: [Errno 17] File exists: 'data/temp/new-dir/'

Ein Fehler (FileNotFoundError) WIRD AUCH ausgelöst, WENN EIN NEUES VERZEICHNIS IN EINEM NICHT VORHANDENEN VERZEICHNIS ERSTELLT WIRD.

new_dir_path_recursive = 'data/temp/new-dir2/new-sub-dir'

# os.mkdir(new_dir_path_recursive)
# FileNotFoundError: [Errno 2] No such file or directory: 'data/temp/new-dir2/new-sub-dir'

Bei Verwendung von os.mkdir() müssen die übergeordneten Verzeichnisse des zu erstellenden Verzeichnisses existieren. Um sofort neue Verzeichnisse zu erstellen, verwenden SIE DAS beschriebene nach os.makedirs().

os.makedirs() erstellt alle Verzeichnisse der mittleren Ebene.

Standardmäßig WIRD Ein Fehler (FileExistsError) ausgelöst, wenn ein vorhandenes Verzeichnis angegeben WIRD.

new_dir_path_recursive = 'data/temp/new-dir2/new-sub-dir'

os.makedirs(new_dir_path_recursive)

# os.makedirs(new_dir_path_recursive)
# FileExistsError: [Errno 17] File exists: 'data/temp/new-dir2/new-sub-dir'

Der Parameter exist_ok (Python 3.2 oder höher)

Der Parameter exist_ok wurde in Python 3.2 zu os.makedirs() hinzugefügt.

Wenn exist_ok=True, kann SIE ohne Fehler ein vorhandenes Verzeichnis angeben. Beachten Sie, dass der Standardwert exist_ok=False ist.

os.makedirs(new_dir_path_recursive, exist_ok=True)

In älteren Versionen ohne exist_ok kann SIE try verwenden, um Ausnahmen zu behandeln, oder os.path.isdir() verwenden, um festzustellen, ob das Zielverzeichnis existiert.

Behandeln Sie Ausnahmen mit try:

try:
    os.makedirs(new_dir_path_recursive)
except FileExistsError:
    pass

Überprüfen Sie die Existenz eines Verzeichnisses mit os.path.isdir():

def my_makedirs(path):
    if not os.path.isdir(path):
        os.makedirs(path)

my_makedirs(new_dir_path_recursive)