web-dev-qa-db-ja.com

Pythonで-pオプションを指定してos.mkdir()を実行するにはどうすればよいですか?

mkdirコマンドを次のように実行したい:

mkdir -p directory_name

Pythonでそれを行う方法は何ですか?

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

あなたはこれを試すことができます:

# 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
26
Adem Öztaş

このようなもの:

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

UPD:コメントで述べられているように、スレッドセーフの例外をチェックする必要があります

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

ドキュメント によると、python 3.2なので、これを使用できるようになりました。

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

また、ディレクトリが存在する場合でもエラーはスローされません。

9
Michael Ma

pathlib を使用している場合は、Path.mkdir(parents=True, exist_ok=True)を使用します

_from pathlib import Path

new_directory = Path('./some/nested/directory')
new_directory.mkdir(parents=True, exist_ok=True)
_

_parents=True_は必要に応じて親ディレクトリを作成します

_exist_ok=True_は、ディレクトリがすでに存在する場合にエラーが発生しないようにmkdir()に指示します

pathlib.Path.mkdir() docs を参照してください。

1
Boris