Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Verzeichnisse und deren übergeordnete Verzeichnisse in Python erstellen?

Wie kann ich Verzeichnisse und deren übergeordnete Verzeichnisse in Python erstellen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-15 12:29:19458Durchsuche

How Can I Create Directories and Their Parent Directories in Python?

Verzeichnisse und deren übergeordnete Verzeichnisse mit Python erstellen

Im Bereich der Dateisysteme ist es oft notwendig, Verzeichnisse zu erstellen, und zwar beide im angegebenen Pfad und alle fehlenden übergeordneten Verzeichnisse auf dem Weg. Dies ahmt die Funktionalität des Befehls mkdir -p von Bash nach.

Modernes Python (≥ 3.5):

Pythons Pathlib-Modul bietet eine praktische Möglichkeit, dies zu handhaben:

from pathlib import Path
Path("/my/directory").mkdir(parents=True, exist_ok=True)

Älteres Python Versionen:

Verwendung des Betriebssystemmoduls:

import os
if not os.path.exists(directory):
    os.makedirs(directory)

Dieser Ansatz weist eine potenzielle Race-Bedingung auf, wie in den Kommentaren erwähnt. Um dieses Problem zu beheben, können Sie einen zweiten os.path.exists-Aufruf verwenden oder den OSError abfangen und den eingebetteten Fehlercode untersuchen:

import os, errno

try:
    os.makedirs(directory)
except OSError as e:
    if e.errno != errno.EEXIST:
        raise

Dies birgt jedoch das Risiko, dass andere Fehler übersehen werden.

Verbesserte Python-Versionen:

Python 3.3 führt FileExistsError ein, das vereinfacht die Fehlerbehandlung:

try:
    os.makedirs("path/to/directory")
except FileExistsError:
    # directory already exists
    pass

Python 3.2 fügt außerdem das Argument exist_ok zu os.makedirs hinzu:

os.makedirs("path/to/directory", exist_ok=True)  # succeeds even if directory exists.

Das obige ist der detaillierte Inhalt vonWie kann ich Verzeichnisse und deren übergeordnete Verzeichnisse in Python erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn