【Python入門】ディレクトリを簡単に作成する|os.mkdir・os.makedirs

よくファイルやディレクトリを操作するときに、以下のようなことが知りたい場合もあります。

「ファイルを格納するためのディレクトリを作成したい」
「深い階層まで一気にディレクトリを作成したい」

そこで、この記事ではディレクトリを簡単に作成できるos.mkdir関数の使い方や、os.makedirs関数の使い方について解説していきます。

【基礎】os.mkdirでディレクトリを作成する方法
【基礎】複数のディレクトリを作成する方法
【発展】os.makedirsでディレクトリを再帰的に作成する方法

ファイル・ディレクトリ操作を行う上で、これらの機能はよく使いますので、使い方についてはしっかりと理解しておきましょう。

os.mkdirとは

os.mkdirはPythonで簡単にディレクトリを作成することが可能な関数です。

ディレクトリを作成するには、mkdirの引数に絶対パスまたは相対パスで作成するディレクトリ名を指定します。

また、mkdir関数を使用するためにはosモジュールをインポートしておく必要があります。

書き方:

import os

os.mkdir(パス)

mkdir関数は引数に指定したパスが存在しない場合は、「FileNotFoundError」のエラーが発生しますので注意しましょう。

os.mkdirの使い方

ここでは、os.mkdir関数の使い方について解説していきます。

基本的な使い方

以下の例ではディレクトリdir配下にsubディレクトリを作成しています。

サンプルプログラム:

import os

path = './dir/sub'

os.mkdir(path)

これでos.mkdirの引数で指定したsubディレクトリが作成されました。

複数のディレクトリを作成する

複数のディレクトリを作成したい場合は、あらかじめ作成するディレクトリのリストを作成しておけば便利です。

サンプルプログラム:

import os

pass_list = ['./dir/sub1', './dir/sub2', './dir/sub3',]

for path in pass_list:
  os.mkdir(path)

これだけで簡単に複数のディレクトリを作成できます!

os.makedirsの使い方

ディレクトリを再帰的に作成する

先程紹介したos.mkdirは、「./dir/sub_dir1/sub_dir2’」のように中間の「sub_dir1」が存在しないと、「FileNotFoundError」のエラーが発生します。

しかし、ここで紹介するos.makedirsを使用すると、中間のディレクトリが存在しない場合は、中間のディレクトリごと作成することが可能です。

以下にos.makedirsを使用して、中間ディレクトリごと作成するサンプルを紹介します。

サンプルプログラム:

import os

path = './dir/sub_dir1/sub_dir2'

os.makedirs(path)

os.makedirsを使用すれば、深い階層のディレクトリまで一気に作成することができるので非常に便利です。

注意点として、os.mkdir同様パスの最後に指定したディレクトリ(ここではsub_dir2)が存在する場合はエラーとなります。

exist_okを指定する

os.makedirsは第二引数に引数にexist_okを指定することで、引数に指定したパスが存在しなくてもエラーは発生しません。

import os

path = './dir/sub_dir1/sub_dir2'

os.makedirs(path, exist_ok=True)

第二引数にexist_okを指定することにより、ディレクトリが存在しない場合は作成し、ディレクトリが存在する場合は何もしません。

そのため、エラーを出したくない場合はexist_okを指定すると良いでしょう。

まとめ

ここでは、ディレクトリを作成するためのos.mkdir、os.makedirsについて解説しました。

  • os.mkdirでディレクトリを作成する方法
  • 複数のディレクトリを作成する方法
  • os.makedirsでディレクトリを再帰的に作成する方法

os.mkdir、os.makedirsを使用すればディレクトリが簡単に作成できますので、使い方についてはしっかりと理解しておきましょう。

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部として、これまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。プログラミング初学者に向けてわかりやすく、ためになるコンテンツ作りを心がけています。

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー