みなさん、こんにちは!
タカハシ(@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ループの使い方についてお伝えしたいと思います。
どうぞお楽しみに!
連載目次:【初心者向けPython】基本の基本を学びながらフォルダ操作
非エンジニアの一般ビジネスマンの初心者向けにPythonでWindowsのファイルやフォルダを操作する簡単便利ツールの作り方を解説しながら、Pythonプログラミングの基本中の基本を学んでいくシリーズです。- Pythonで標準ライブラリのモジュールをインポートして使ってみよう
- Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラム
- Pythonプログラミングの基本中の基本!forループによる繰り返しの作り方
- Pythonでデータをまとめて取り扱う基本中の基本!リストの使い方とforループ
- Pythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方
- Pythonで条件分岐をする基本中の基本!if~else文の作り方
- Pythonでテキストファイルを開いてデータを読み込む基本中の基本
- Pythonで文字列を区切り文字や改行で分割してリスト化するsplitメソッドの使い方
- Pythonで文字列のスペース・タブ・改行を取り除くstripメソッドの使い方
- Pythonで開いたファイルのクローズを忘れやすい人のためのwith文の使い方
- Pythonでcsvファイルからデータを読み込む最初の一歩
コメント
os.path.joinを使えば、Pathの合成ができますよ。
以下のサンプルだとカレントディレクトリにtestフォルダを作っているのであんまり意味ないですが。
補足ありがとうございます!
任意のフォルダを指定したいときは、こちらのほうが便利ですね。