GIMPでやる必要あるのか?
自分が使う用事があって作った。拡張子ごとに分けれる。というか同じ拡張子ごとにしか分けれない仕様にしてしまった。
ファイル名にハイフンかアンダーバーがあればそれもファイルを分けるか選択することができる。
インストール方法
以下をコピペしてファイル名をorganize_files_by_capacity.pyにしてutf-8で保存後、GIMPのプラグインフォルダーに入れる。
GIMPのメニューの「ファイル」→「organize files by capacity」をクリックすると動作する。
プラグインフォルダーはGIMPを起動し「編集」→「設定」→「フォルダー」→「プラグイン」で確認の事。
#!/usr/bin/python # -*- coding: utf-8 -*- import shutil, os, glob from gimpfu import * def organize_files_by_capacity(separation, cap_limit, extension, folder_path): if folder_path == "": gimp.quit() folder_path = folder_path.decode("utf-8") p = os.path.join(folder_path, "*" + extension) i = 1 cap = 0 if not glob.glob(p): gimp.message("指定フォルダーに".decode("utf-8") + extension + "ファイルがありません".decode("utf-8")) gimp.quit() else: if separation == True: first_file_name = glob.glob(p)[0] first_file_basename = os.path.splitext(os.path.basename(first_file_name))[0] if "_" in first_file_basename: folder_name = first_file_basename.split("_")[0] elif "-" in first_file_basename: folder_name = first_file_basename.split("-")[0] else: gimp.message("-か_の区切り文字がありません".decode("utf-8")) gimp.quit() previous_folder_name = folder_name new_path = os.path.join(folder_path , folder_name + "_01") else: new_path = os.path.join(folder_path, "01") os.mkdir(new_path) for file in glob.glob(p): cap = cap + os.path.getsize(file) if separation == True: folder_name = os.path.splitext(os.path.basename(file))[0] if "_" in folder_name: now_folder_name = folder_name.split("_")[0] elif "-" in folder_name: now_folder_name = folder_name.split("-")[0] if cap > cap_limit * 1000: i = i + 1 new_path = os.path.join(folder_path, now_folder_name + "_" + str(i).zfill(2)) os.mkdir(new_path) cap = os.path.getsize(file) elif previous_folder_name != now_folder_name: gimp.message("folder_name = "+ folder_name) gimp.message("previous_folder_name = "+ previous_folder_name) i = 1 new_path = os.path.join(folder_path, now_folder_name + "_" + str(i).zfill(2)) os.mkdir(new_path) cap = os.path.getsize(file) previous_folder_name = now_folder_name else: if cap > cap_limit*1000: i = i + 1 new_path = os.path.join(folder_path,str(i).zfill(2)) os.mkdir(new_path) cap = os.path.getsize(file) shutil.move(file,os.path.join(new_path,os.path.basename(file))) register( "organize_files_by_capacity", "organize files by capacity", "organize files by capacity", "katsumi", "katsumi", "2022", "organize files by capacity", "", [ (PF_BOOL, "separation", "-や_で区切られた名前ごとにフォルダーを分ける", True), (PF_INT, "cap_limit", "何容量(kb)でまとめるか?",10000 ), (PF_TEXT, "extension", "拡張子を入力",".jpg"), (PF_DIRNAME, "folder_path", "フォルダーの場所を指定してください", ""), ], [], organize_files_by_capacity, menu = "<Image>/File/Open" ) main()