(最終更新月:2023年7月)
✔当記事は以下のような疑問をお持ちの方に向けて書かれています
「Pythonでどのようにフォルダを作成できるのだろう?」
「Pythonでフォルダ作成のコードが知りたい」
「Pythonを用いたフォルダ作成の具体的な事例はどのようなものか」
✔当記事を通じて伝えること
- Pythonでのフォルダ作成の基本
- Pythonを用いたフォルダ作成のコードやその適用方法
- Pythonでのフォルダ作成の具体的な事例
当記事では、Pythonでのフォルダ作成の基本から、実際のコードでの適用方法まで、具体的な事例を使用しながら詳細に解説していきます。
ぜひ最後までご覧いただき、Pythonでフォルダを作成するための知識を深めてください。
✔【聞き流しOK】動画で見て、聞いて学びたい方はこちら
Pythonでフォルダを作成する理由
Pythonでフォルダ作成をするメリットについて見ていきましょう。
どのようなケースで使われているかも理解して、こちらの知識を身につける活力にしてください。
- フォルダ作成の重要性
- Pythonで操作するメリット
- Pythonでフォルダ作成をおこなう実ケース
フォルダ作成の重要性
フォルダ作成はデータ整理、管理の基本です。
特に大量のファイルを取り扱う際には、適切なフォルダ構造を作ることで、ファイル管理が容易になります。
PC上では、GUI(画面でマウス等で操作)だけでなく、コマンドプロンプト(ターミナル)や各プログラミング言語で、フォルダ作成が可能です。
Pythonで操作するメリット
Pythonを使うと、コマンドひとつでフォルダを作成できるだけでなく、複数階層のフォルダを一度に作成可能です。
手動よりも、時間と労力を大幅に節約できるのが特徴です。
作業を自動化するスクリプトにも、フォルダ作成を含められるのもメリットといえます。
Pythonでフォルダ作成をおこなう実ケース
Pythonでフォルダを作成するためのスクリプトは、さまざまなシナリオで有用です。
以下がその例です。
- データ分析: データサイエンティストやアナリストが大量のデータを扱う場合、分析結果を整理しやすくするために、自動的に新しいフォルダを作成して結果を保存することが有益です。例えば、日次または週次の分析結果をそれぞれの日付や週のフォルダに保存することで、分析結果を整理し、追跡しやすくなります。
- 画像処理: 画像データを扱うプロジェクトでは、画像を異なるフォルダに自動的に分類することが役立つ場合があります。たとえば、画像認識アルゴリズムの出力に基づいて、各画像を特定のカテゴリーのフォルダに分類することが考えられます。
- バッチ処理: 大量のファイルをバッチ処理する際に、処理結果を格納するフォルダを自動的に作成することは有益です。処理が成功したファイルと失敗したファイルを別々のフォルダに格納することで、結果の確認やエラーのデバッグが容易になります。
- ウェブスクレイピング: ウェブサイトから情報を自動的に取得する際、取得したデータを分類するための新しいフォルダを作成することは有益です。例えば、異なるウェブサイトまたはウェブページからのデータを別々のフォルダに保存することで、データの整理と分析がしやすくなります。
これらのシナリオでは、Pythonのosモジュールを使って簡単にディレクトリを作成できます。
os.makedirs()関数を使用すると、存在しない場合にのみ新しいディレクトリを作成可能です。
Pythonを準備する
Pythonを準備する方法について説明します。
Pythonを使うことで、さまざまなファイル操作を簡単に、自動でおこなえるのです。
- Pythonインストール方法と確認
- 必要なPythonバージョンの確認
Pythonインストール方法と確認
Pythonをまだインストールしていない場合は、Pythonの公式ウェブサイトから最新のインストーラをダウンロードしてインストールします。
インストールが完了したら、ターミナルまたはコマンドプロンプトを開き、次のコマンドを入力することでPythonが正しくインストールされたことを確認できます。
python --version
このコマンドは、インストールされているPythonのバージョンを表示します。
必要なPythonバージョンの確認
Pythonにはさまざまなバージョンがありますが、当記事ではPython 3.x系列を使用します。
Python 2.x系列も広く使われていますが、2020年にサポートが終了し、Python 3.x系列の使用がおすすめです。
特にPython 3.4以降では、後述するosモジュールの中のos.makedirs
関数にexist_ok
という便利な引数が追加されており、この引数を活用するためにもPython 3.4以降をインストールしておくと良いでしょう。
$ python --version
Python 3.8.10
Pythonで新規フォルダ作成:os.mkdirの基本
こちらでは、os.mkdir
というPythonの標準ライブラリを用いた方法を解説します。
Pythonで新規にフォルダを作成するための基本的な方法です。
- os.mkdirの説明と使い方
- 実際のフォルダ作成コードと結果
- パスとフォルダ名の指定方法
- パスを指定するための便利なメソッド
os.mkdirの説明と使い方
Pythonのosモジュールには、フォルダを作成するためのmkdir
という関数があります。
os.mkdir(フォルダパス)
フォルダパスに新しいフォルダを作成します。
import os
# 新しいディレクトリのパスを指定
new_dir_path = "/path/to/your/new/directory"
os.mkdir(new_dir_path)
実際のフォルダ作成コードと結果
例えば、カレントディレクトリ(現在のスクリプトが存在するディレクトリ)に”my_folder”という名前の新しいフォルダを作成するには、以下のようなコードを書きましょう。
import os
os.mkdir("my_folder")
カレントディレクトリに”my_folder”という新しいフォルダが作成されます。
osモジュールを使用する際は、どこからコードが実行されているかも重要。
以下のコマンドでカレントディレクトリを調べられます。
# カレントディレクトリを調べる
import os
current_directory = os.getcwd()
print("カレントディレクトリ:", current_directory)
パスとフォルダ名の指定方法
os.mkdir
の引数では、フォルダを作成したい特定のパスを指定することも可能です。
例えば、”C:\Users\YourName\Documents\my_folder”というパスに新しいフォルダを作成する場合は、以下のようにします。
import os
os.mkdir("C:\\Users\\YourName\\Documents\\my_folder")
パスを指定するための便利なメソッド
パスの指定には、文字列でなく、pathlibモジュールを使うことがおすすめ。
なぜならお使いのOS(WindowsやMac等)によって、文字列によるパス表記が異なり、エラーとなってしまうからです。
pathlibモジュールには、表記を統一する機能が備わっています。
以下のように使いましょう。
from pathlib import Path
# パスを組み立てる例
current_directory = Path.cwd()
file_path = current_directory / "data" / "file.txt"
# パスを文字列に変換する例
path_as_string = str(file_path)
# パスの存在をチェックする例
if file_path.exists():
print("ファイルが存在します。")
else:
print("ファイルが存在しません。")
pathlib.Pathでパスを組み立ててから、文字列に変換しましょう。
複数階層のフォルダを作る:os.makedirsの理解と利用
こちらでは、os.makedirs
関数について詳しく見ていきましょう。
複数階層のフォルダを一度に作成するための関数です。
- os.makedirsとその活用法
- 再帰的にディレクトリを作成
- os.mkdirとos.makedirsの違い
os.makedirsとその活用法
os.makedirs
関数は、os.mkdir
関数と同様に新規ディレクトリを作成します。
違いは、一度に複数の階層を作成することが可能なこと。
具体的には、与えられたパスが存在しない場合、そのパス上の全ディレクトリを作成します。
from pathlib import Path
import os
# 新しいディレクトリを作成するパス
new_directory = Path("parent_directory") / "child_directory" / "grandchild_directory"
# pathlib.Pathオブジェクトを文字列に変換してos.makedirsに渡す
new_directory_str = str(new_directory)
# 複数の階層を一度に作成
os.makedirs(new_directory_str, exist_ok=True)
# ディレクトリが作成されたことを確認
if new_directory.exists():
print("ディレクトリが作成されました。")
else:
print("ディレクトリの作成に失敗しました。")
再帰的にディレクトリを作成
os.makedirs
の活用例を見てみましょう。
例えば、カレントディレクトリ以下”\folder1\folder2\folder3″のようなパスに、複数階層のフォルダを作成する場合、以下のようにコードを書きましょう。
from pathlib import Path
# 新しいディレクトリを作成するパス
new_directory = Path("./") / "folder1" / "folder2" / "folder3"
# pathlib.Pathオブジェクトを文字列に変換してos.makedirsに渡す
new_directory_str = str(new_directory.resolve())
# 複数の階層を一度に作成
os.makedirs(new_directory_str, exist_ok=True)
# ディレクトリが作成されたことを確認
if new_directory.exists():
print("ディレクトリが作成されました。")
else:
print("ディレクトリの作成に失敗しました。")
このコードを実行すると、指定したパスに存在しない全てのフォルダが作成されます。
os.mkdirとos.makedirsの違い
os.mkdir
とos.makedirs
の主な違いは、os.makedirs
が一度に複数の階層を作成できる点です。
os.makedirsでは、一度に深い階層のフォルダを作成することが可能となります。
ただしすでに存在するフォルダを指定した場合、os.mkdir
とos.makedirs
はエラーを返します。
この問題を解決する方法を次章でご覧ください。
エラーハンドリングとexist_ok引数
こちらでは、そうしたエラーに対する対応策について学びます。
フォルダ作成に際し、既存のフォルダ名を指定した場合や権限がない場所に作成しようとした場合など、さまざまな問題が発生する可能性があります。
- 一般的なエラーケースとその対応策
- 引数exist_okの説明と使い方
一般的なエラーケースとその対応策
フォルダ作成時に遭遇する一般的なエラーの一つは、既に存在するディレクトリに対して再度ディレクトリ作成を試みる場合です。
この場合、PythonはFileExistsError
を送出します。
この問題を回避する方法の一つは、try/except
ブロックを使用してエラーをキャッチし、エラーメッセージを表示することです。
import os
try:
os.mkdir("existing_folder")
except FileExistsError:
print("The folder already exists.")
引数exist_okの説明と使い方
また、os.makedirs
には、exist_ok
という便利な引数があります。
この引数をTrue
に設定すると、指定したパスのディレクトリがすでに存在していてもエラーが発生せず、存在していない部分のみが作成されます。
import os
os.makedirs("existing_folder", exist_ok=True)
これで、すでに存在するディレクトリへの新規ディレクトリ作成を試みた場合でも、エラーを回避することができます。
より良いファイル管理:実用的な例としての自動ファイル整理
今まで学んだ知識を使って、実用的なファイル管理の例を見てみましょう。
以下の例では、ダウンロードフォルダにある各ファイルの拡張子をチェックし、それぞれに対応したサブフォルダに移動します。
例えば、.pdf
ファイルはPDFs
フォルダに、.jpg
ファイルはJPGs
フォルダに移動します。
from pathlib import Path
import os
import shutil
# ファイルを整理するディレクトリを指定
folder_path = Path("./" / "downloads")
# ファイルの種類ごとにフォルダを作成
extensions_folders = {
'.pdf': 'PDFs',
'.jpg': 'JPGs',
'.png': 'PNGs',
}
for folder in extensions_folders.values():
os.makedirs(os.path.join(folder_path, folder), exist_ok=True)
# ディレクトリ内の全てのファイルをチェック
for file_name in os.listdir(folder_path):
# ファイルの拡張子を取得
_, extension = os.path.splitext(file_name)
if extension in extensions_folders:
# ファイルを対応するフォルダに移動
old_path = os.path.join(folder_path, file_name)
new_path = os.path.join(folder_path, extensions_folders[extension], file_name)
shutil.move(old_path, new_path)
このコードは、指定したディレクトリ内の各ファイルの拡張子をチェックし、対応するサブフォルダにそのファイルを移動します。
このように、Pythonでフォルダを作成し、ファイルを整理することで、作業の効率化を図れるのです。
まとめ
当記事では、Pythonでのフォルダ作成について学習してきました。
- 新規フォルダの作成
- 複数階層フォルダの作成
- エラーハンドリングを行う方法
また、これらの知識を活用してファイルを整理する実用的な例を見てきました。
この知識を活用すれば、大量のファイルやフォルダの管理がより簡単になり、作業の効率化が期待できます。
Pythonのこの機能をぜひ活用して、日々のファイル管理をスムーズにおこなってください。