Pythonでディレクトリを作成する

Pythonでディレクトリを作ります。

目次

  1. os.mkdirメソッドの使い方
  2. os.makedirsメソッドの使い方

os.mkdirメソッドの使い方

import os

os.mkdir(pathname, [mode], [dir_fd])
変数 内容
pathname string 作成するディレクトリのパス。
mode   規定値は777。権限の指定なのですが、Windowsでは効果がありません。
dir_fd   規定値はNone。Windowsでは効果がありません。

指定したパスのディレクトリを作成します。

1層ずつしか作れないことに注意しましょう。

>>> import os
>>> os.mkdir('a')

カレントディレクトリにaというディレクトリが作られました。

>>> os.mkdir('a\\b')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileNotFoundError: [WinError 3] 指定されたパスが見つかりません。: 'a\\b'

aというディレクトリを削除して、ディレクトリaとその子のbをまとめて作ろうとしたところ、エラーになりました。こういう場合は別のメソッドを使う必要があります。

os.makedirsメソッドの使い方

import os

os.makedirs(pathname, [mode], [exist_ok])
変数 内容
pathname string 作成するディレクトリのパス。
mode   規定値は777。権限の指定なのですが、Windowsでは効果がありません。
exist_ok bool 規定値はFalse。ディレクトリが存在した場合の挙動を指定します。

makedirsメソッドは、指定したパスの中間のディレクトリも含めてディレクトリを作成します。

exist_odにFalseを指定すると、指定したパスが存在する場合にエラーを出します。Trueにすると、そのままコードを実行します。

>>> import os

>>> os.makedirs('a\\b')

>>> os.makedirs('a\\b', exist_ok=False)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python37\lib\os.py", line 221, in makedirs
    mkdir(name, mode)
FileExistsError: [WinError 183] 既に存在するファイルを作成することはできません。: 'a\\b'
>>>

カレントディレクトリにaというディレクトリが作られ、その子にbというディレクトリが作られました。

広告

Pythonのファイル処理カテゴリの投稿