ファイルシステムやプロジェクトを管理していると、変わらないフォルダ構造を自動的に作成したいことがあります。Pythonを使うと、これを超簡単に実現できます。この記事では、フォルダ階層を自動的に作成するPythonスクリプトを共有します。
基本構造
このスクリプトは、配列やディクショナリ構造を基にしてフォルダを作成します。下記のコードでは、フォルダヒエラルキーを指定して、そのフォルダと下位構造を自動的に作成します。
Pythonコード
import os
def create_folder_structure(base_path, structure):
"""
Creates a folder structure based on the given dictionary.
Parameters:
base_path (str): The root directory where the structure should be created.
structure (dict): A dictionary representing the folder hierarchy.
"""
for folder, substructure in structure.items():
folder_path = os.path.join(base_path, folder)
os.makedirs(folder_path, exist_ok=True) # Create the folder
if isinstance(substructure, dict):
create_folder_structure(folder_path, substructure) # Recursively create subfolders
# Define the folder structure as a dictionary
nested_structure = {
"Project": {
"src": {
"components": {},
"utils": {},
},
"docs": {},
"tests": {
"unit": {},
"integration": {}
},
"build": {}
}
}
# Specify the base directory where the folders will be created
base_directory = "./output"
# Create the folder structure
create_folder_structure(base_directory, nested_structure)
print(f"Folder structure created successfully in {os.path.abspath(base_directory)}.")
実行結果
上記のスクリプトを実行すると、指定したベースディレクトリの下に以下のような階層構造が作成されます。
output/
└── Project/
├── src/
│ ├── components/
│ └── utils/
├── docs/
├── tests/
│ ├── unit/
│ └── integration/
└── build/
拡張アイデア
- 初期ファイルの作成:
- 各フォルダに初期的なREADMEファイルを追加したい場合は、
os.makedirs
の後にコードを追加します。
- 各フォルダに初期的なREADMEファイルを追加したい場合は、
with open(os.path.join(folder_path, "README.md"), "w") as f:
f.write(f"# {folder} folder\n")
- 動的構造の作成:
- 構造をユーザからの入力で指定したいときは、フォルダ名をリストとしてインプットを受け収けます。
このプログラムを使用すると、プロジェクトやディレクトリの管理がスムーズに行えます。気軽に試してみてください!
コメント