Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich ein Verzeichnis und seine fehlenden übergeordneten Verzeichnisse in Python?

Wie erstelle ich ein Verzeichnis und seine fehlenden übergeordneten Verzeichnisse in Python?

Linda Hamilton
Linda HamiltonOriginal
2024-12-21 10:17:091011Durchsuche

How to Create a Directory and its Missing Parent Directories in Python?

Erstellen eines Verzeichnisses und fehlender übergeordneter Verzeichnisse mit Python

F: Wie kann ich gleichzeitig ein Verzeichnis in einem angegebenen Pfad erstellen? Fehlende übergeordnete Verzeichnisse auf diesem Pfad erstellen?

Um diese Funktionalität in Python ≥ 3.5 zu erreichen, verwenden Sie pathlib.Path.mkdir:

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

Berücksichtigen Sie für frühere Python-Versionen die folgenden Ansätze:

Ansatz 1:Verwenden Sie os.path.exists und os.makedirs

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

Obwohl dieser Ansatz einfach ist, stellt er ein potenzielles Rennen dar Bedingung.

Ansatz 2:Potenzielle Race-Bedingung behandeln

import os, errno

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

Diese Option behebt die Race-Bedingung durch Erfassen und Untersuchen des Fehlercodes.

Moderne Python-Verbesserungen:

Python-Versionen 3.3 und 3.2 werden eingeführt Verbesserungen:

  • FileExistsError wird offengelegt, was eine sauberere Fehlerbehandlung ermöglicht.
  • os.makedirs verfügt über das Schlüsselwortargument exist_ok, das die Verzeichniserstellung ermöglicht, auch wenn es bereits existiert.
try:
    os.makedirs("path/to/directory")
except FileExistsError:
    # directory already exists
    pass
os.makedirs("path/to/directory", exist_ok=True)  # succeeds even if directory exists.

Das obige ist der detaillierte Inhalt vonWie erstelle ich ein Verzeichnis und seine fehlenden übergeordneten Verzeichnisse in Python?. 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