
photo credit: wuestenigel Colorful Eye Shadow Palette Makeup Products via photopin (license)
みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
はい、初心者向けにWindowsのフォルダ操作をするツールを作りながらPythonの基本中の基本を学んでおります。
前回は、OSとやり取りするためのosモジュールをインポートする方法と、現在の作業フォルダのパスを調べる方法についてお伝えしました。
さて、例えば、複数のフォルダを作るとき、どうしていますか?
作成する分だけ、右クリックしてメニューから「新規作成」→「フォルダ」…なんてしてませんよね?
ショートカットキー Ctrl + Shift + N でも名前を入力しないとですから、複数フォルダの場合はちょっと面倒です。
ということで、Pythonで複数のフォルダを一気に作るプログラムを目指していきます。
今回は手始めに、Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラムについてお伝えします。
では、行ってみましょう!
前回のおさらい
おさらいって言っても、現在の作業フォルダのパスを表示するという超単純プログラムでしたけどね。
こちらです。
import os print(os.getcwd())
os.getcwd関数を使うには、当然ながらosモジュールが必要。ということで、冒頭のimport文でosモジュールをインポートしています。
os.mkdir関数でフォルダを作成する
Pythonでフォルダを作成するには、os.mkdir関数を使います。
「Make Directory」で「mkdir」ですね。
pathには作成するフォルダのパスを絶対パスか相対パスかのどちらかを文字列で指定します。
しかし…、ディレクトリと言ったり、フォルダと言ったり…統一して欲しいものです。
相対パスを指定してフォルダを作成する
相対パスはカレントディレクトリ、つまり現在の作業フォルダから相対的に指定するパスです。
現在のフォルダは「.」、一つ上の親フォルダは「..」で表します。
現在の作業フォルダに例えば「test」というフォルダを作成するのであれば、「.\test」と指定するのが丁寧な書き方であります。
import os os.mkdir('.\\test')
「\\」は「\」のエスケープシーケンスです。
エスケープシーケンスとは、特殊な文字を記述するための方法です。
Pythonでは、「\」は特別な役割を果たす記号ですので、「\」を表現するにはエスケープシーケンスを使って「\\」と二つ並べることで表現をする必要があります。
しかし、せっかくなのですが、現在の作業フォルダであれば「.\」は省略することができちゃったりします。
ですから、以下のプログラムでOKです。
import os os.mkdir('test')
このプログラムを保存して実行すると、pyファイルを保存したフォルダに「test」フォルダが作成されます。
絶対パスを指定してフォルダを作成する
絶対パスはルートフォルダから対象のフォルダまで全てを指定します。
こちらも文字列でパスを指定しますので、「\」はエスケープシーケンスで「\」としなくてはいけませんね。
例えば、「C:\Users\ntaka\Dropbox\desktop\mkdir」の配下に「test」フォルダを作りたいのだれば、以下のようにしますね。
import os os.mkdir('C:\\Users\\ntaka\\Dropbox\\desktop\\mkdir\\test')
これで、先ほどと同様に実行すると、ちゃんと狙ったフォルダに「test」フォルダが作成されます。
ですが、絶対パス…面倒っすね。
複数のフォルダを作成する
では、相対パスの指定によるmkdir関数を使って、サクっと複数のフォルダを作成してみましょう。
import os os.mkdir('10_アフリカ') os.mkdir('20_アメリカ') os.mkdir('30_アジア') os.mkdir('40_ヨーロッパ') os.mkdir('50_オセアニア')
もう、説明の必要はないくらい簡単ですね。
これを実行すると、以下のようにちゃんと各フォルダが作成されます。その実行時間は一瞬です。
まとめ
以上、Pythonでos.mkdir関数を使って複数のフォルダを作成する簡単プログラムを作成しました。
Pythonではフォルダを作るのもすっごく簡単ですね。
とはいえ、今回の方法ですと、若干強引な書き方な感じもしますね。もうちょっとスマートに書く方法を模索したいものです。
ということで、次回は繰り返し処理をするforループの使い方についてお伝えしたいと思います。
どうぞお楽しみに!