1. ホーム
  2. python

[解決済み] Pythonでmkdir -p機能 [重複]する。

2022-03-18 09:12:56

質問

のような機能を得る方法はありますか? mkdir -p をPythonの中からシェル上で実行することができます。 システムコール以外の解決策を探しています。 私はコードが20行未満であると確信しており、私は誰かがすでにそれを書いているのだろうか?

解決方法は?

Python ≥ 3.5 の場合、次のようにします。 pathlib.Path.mkdir :

import pathlib
pathlib.Path("/tmp/path/to/desired/directory").mkdir(parents=True, exist_ok=True)

exist_ok パラメータは Python 3.5 で追加されました。


Python ≥ 3.2 の場合。 os.makedirs には オプションの第三引数 exist_ok というのは True を有効にします。 mkdir -p 機能性 ない限り mode が提供され、既存のディレクトリが意図したものと異なるパーミッションを持つ場合;その場合。 OSError が発生するのは、前回と同じです。

import os
os.makedirs("/tmp/path/to/desired/directory", exist_ok=True)


さらに古いバージョンのPythonの場合は os.makedirs と表示され、エラーを無視します。

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
        # possibly handle other errno cases here, otherwise finally:
        else:
            raise