it-swarm.com.de

Wie starte ich os.mkdir () mit der Option -p in Python?

Ich möchte den Befehl mkdir ausführen als:

mkdir -p directory_name

Was ist die Methode, um das in Python zu tun?

os.mkdir(directory_name [, -p]) didn't work for me.
13
pynovice

Sie können dies versuchen:

# top of the file
import os
import errno

# the actual code
try:
    os.makedirs(directory_name)
except OSError as exc: 
    if exc.errno == errno.EEXIST and os.path.isdir(directory_name):
        pass
25
Adem Öztaş

Etwas wie das:

if not os.path.exists(directory_name):
    os.makedirs(directory_name)

UPD: Wie in einem Kommentar erwähnt, müssen Sie die Thread-Sicherheit auf Ausnahmen prüfen

try:
    os.makedirs(directory_name)
except OSError as err:
    if err.errno!=17:
        raise
12
singer

Laut der Dokumentation können Sie diese nun seit Python 3.2 verwenden

os.makedirs("/directory/to/make", exist_ok=True)

und es wird kein Fehler ausgelöst, wenn das Verzeichnis existiert.

8
Michael Ma

Sie können path.mkdir(parents=True, exist_ok=True) ausführen, wenn Sie pathlib verwenden.

from pathlib import Path

directory = Path('./some/nested/directory')

direcotry.mkdir(parents=True, exist_ok=True)

parents=True erstellt alle übergeordneten Verzeichnisse, die Sie benötigen, und exist_ok=True weist mkdir() an, keine Fehler zu verursachen, wenn das Verzeichnis bereits vorhanden ist. Siehe pathlib.Path.mkdir docs .

0
Boris