mkdir
コマンドを次のように実行したい:
mkdir -p directory_name
Pythonでそれを行う方法は何ですか?
os.mkdir(directory_name [, -p]) didn't work for me.
あなたはこれを試すことができます:
# 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
このようなもの:
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
ドキュメント によると、python 3.2なので、これを使用できるようになりました。
os.makedirs("/directory/to/make", exist_ok=True)
また、ディレクトリが存在する場合でもエラーはスローされません。
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 を参照してください。