Masayan tech blog.

  1. ブログ記事一覧>
  2. Pythonで任意のディレクトリを一括作成する方法

Pythonで任意のディレクトリを一括作成する方法

公開日

環境

  • Windows 10
  • Python 3.10.1

結論

osモジュールのmakedirsメソッドを使用する

前提

作成するフォルダの構成

test
└a
└b
└c
└ c-1

実装

呼び出し側

  • 作成したいディレクトリ名のリストと、作成するディレクトリの共通パスを宣言
  • 自作のフォルダオブジェクトを生成し、それをMakeFolderServiceに渡す

tests\test_make_folder_service.py

import os
from shared.Application.make_folder_service import MakeFolderService
from shared.Domain.xfolder import XFolder

def test_任意のフォルダを作成できること():

    making_folder_list = ["a", "b", "c\\c-1"]
    base_path = "C:\\Users\\nishigaki\\Desktop\\test\\"

    for folder in making_folder_list:
        x_folder = XFolder(base_path=base_path, folder_name=folder)
        MakeFolderService().execute(x_folder)
        assert os.path.exists(base_path + folder) == True

shared\Application\make_folder_service.py

  • 中間ディレクトリがない場合はエラーにならず、そのディレクトリを作成してくれる
  • 中間ディレクトリは、今回の例でいうと、"c"というディレクトリ(cが存在しなくても、勝手に作成してその次階層のc-1というディレクトリを作成してくれる)
  • os.mkdirというメソッドもあるが、こちらは中間ディレクトリが存在しない場合、エラーになる
  • さらに、作成するフォルダがすでに存在していてもエラーを出したくない場合は、os.makedirsの第二引数に引数にexist_okを指定することで、存在していれば作成しないとよしなにしてくれる
import os
from shared.Domain.xfolder import XFolder

class MakeFolderService:
    def execute(self, xfolder: XFolder):
        os.makedirs(xfolder.get_folder_path(), exist_ok=True)

以上です

まとめ

いかがでしたでしょうか。本記事では、Pythonで任意のディレクトリを一括作成する方法について紹介しています。ぜひ参考にしてみてください