Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstelle ich in Python ein Verzeichnis mit Zwischenverzeichnissen?

Wie erstelle ich in Python ein Verzeichnis mit Zwischenverzeichnissen?

DDD
DDDOriginal
2024-10-29 13:49:29477Durchsuche

How to create a directory with intermediate directories in Python?

Die Funktion „mkdir -p“ in Python [Duplikat]

Wie implementiert man in Python etwas Ähnliches wie den Shell-Befehl „mkdir -p" "Funktion? Ich hoffe auf eine Lösung, die nicht auf Systemaufrufen basiert und eine Codelänge von weniger als 20 Zeilen hat.

Lösung

Für Python ≥ 3.5 verwenden Sie pathlib.Path.mkdir:

<code class="python">import pathlib
pathlib.Path("/tmp/path/to/desired/directory").mkdir(parents=True, exist_ok=True)</code>

Der Parameter exist_ok war neu in Python 3.5.

Für Python ≥ 3.2 verfügt os.makedirs über ein optionales drittes Argument exist_ok, das, wenn es wahr ist, die mkdir -p-Funktionalität aktiviert, außer wenn der Modus angegeben ist und die Berechtigungen des Verzeichnisses in diesem Fall von den erwarteten Berechtigungen abweichen , wird wie zuvor ein OSError ausgelöst:

<code class="python">import os
os.makedirs("/tmp/path/to/desired/directory", exist_ok=True)</code>

Für frühere Versionen von Python können Sie os.makedirs verwenden und den Fehler ignorieren:

<code class="python">import errno
import os

def mkdir_p(path):
    try:
        os.makedirs(path)
    except OSError as exc:  # Python ≥ 2.5
        if exc.errno == errno.EEXIST and os.path.isdir(path):
            pass
        # 还可以在此处理其他errno情况,否则:
        else:
            raise</code>

Das obige ist der detaillierte Inhalt vonWie erstelle ich in Python ein Verzeichnis mit Zwischenverzeichnissen?. 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