Python

【python】ディレクトリ構造を一括作成

shamimatsu

python3.7を使用
pythonの勉強で作成しましたが、階層構造の作成は思いのほか便利で仕事で多用しています。

新規作成したフォルダをbatにドラッグ&ドロップするとフォルダ内にscenes、sourceimages、sourceimages/psd’が作成されます。書き換えれば他のフォルダ名で作成できるのでプロジェクトの仕様に合わせて変更してください。

フォルダ以外をドロップした場合はエラーメッセージ、指定フォルダがすでに存在していた場合は存在を知らせるメッセージが出るようにしています。

コード

テキストドキュメントを新規作成し、CreateDir.pyというファイル名にして以下の内容を書いて保存してください。

import os
import sys


file_path = sys.argv[1]

def create_dir(file_path):
    if os.path.isdir(file_path):
        scene_path = os.path.join(file_path, 'scenes')
        image_path = os.path.join(file_path, 'sourceimages')
        psd_path = os.path.join(file_path, 'sourceimages/psd')

        list_dirs = [scene_path, image_path, psd_path]

        for list_dir in list_dirs:
            if os.path.exists(list_dir):
                print('ディレクトリは存在しています', list_dir)

            else:
                os.makedirs(list_dir, exist_ok=True)
                print('ディレクトリ作成', list_dir)

    else:
        print('フォルダをドロップしてください')

create_dir(file_path)

batの内容

テキストドキュメントを新規作成し、CreateDir.batという名前にして以下の内容を書いて保存してください。
※pyファイルと並列にbatを置いた場合

@echo off
call pythonがあるディレクトリ\python.exe CreateDir.py %1
pause


注意点

「C:\Program Files」のようにパスにスペースがあると実行が失敗します。
“C:\Program Files”のように「”」で囲む必要があります。
こちらのサイトがとても参考になりました。

バッチファイルでの「スペース」を含んだ文字列の取り扱い
https://jj-blues.com/cms/column-spaceinbatfile/

ABOUT ME
shamimatsu
shamimatsu
3DCGデザイナー
ながらくゲーム業界で2D、3DCGデザイナーとして働いてきましたが、新しい業界に挑戦中です。 ブログのデザインをリニューアル中のため、見づらい箇所もあるかもしれませんが少しづつ修正していきます。
記事URLをコピーしました