ファイルのキーワードによる 移動 Ver20240602 | 60歳を迎えて、思うこと。

60歳を迎えて、思うこと。

いつの間にか、「60」という年月が経ちました。
残り少ないか多いか?わかりませんが。
じじぃ~の「ひとりごと」を細々と続けられれば。。。

ファイルのキーワードによる 移動 Ver20240602

'''
重複ファイル 例外処理作動
C:\pypy\re-MOVE-文字列-JPG-2024-06-02-TEST-00.py

正常動作 keyword総当たり 成功
移動先は 1フォルダのみ

Ver.TEST-01
  移動先に サブフォルダを作成する
  【chatGPT】様の ご助言で
  移動先に サブフォルダを作成することができた
  ただし、移動ファイルは 単一フォルダに移動状態

Ver.TEST-02
 に 着手する前に Blog Backup
'''

# =============== import
import os
from pathlib import Path
import glob
import re
import shutil
# =============== 変数定義
# 特定フォルダのみ検索対象の場合の例文 ⇒ 'D:\\abcdefg'
target_path = 'D:\\_0601-TEST'
# Drive全体が検索対象の場合の例文 ⇒ 'D:\\'
# target_path = 'D:\\'

# 検索対象のファイルの移動先フォルダを定義
move_path = 'E:\\TEST-TEST'
print('Move先【移動先-同名ファイル発生時-例外処理で停止】',end='⇒  ')
print(move_path)
ext_name = 'jpg'
print('振り分け拡張子は',end='⇒  ')
print(ext_name)
# =============== CD チェンジディレクトリ
os.chdir(target_path)
cwd = os.getcwd()
print('Move元(検索元)',end='⇒  ')
print(cwd)
# =============== ファイルの移動先のフォルダの存在確認とその処理
if os.path.isdir(move_path):
    pass
else:
    os.makedirs((move_path), exist_ok=True)
# =============== 振り分け文字列の定義
xxx = 0
key_word_list_1 = [

'北海道',
'東京',
'南極'

]

# =============== 例外処理で 重複ファイル発見時の
# =============== エラー停止を回避
try:
    for p in key_word_list_1 :
        wd = key_word_list_1[xxx]
        sub_path = wd
        print(wd)
        print(sub_path)

        deep_folder_path = Path((move_path)+'/'+(wd))
        # フォルダを作成
        deep_folder_path.mkdir(parents=True, exist_ok=True)
        print(f"Created directory: {deep_folder_path}")

        # for p in glob.glob((target_path)+'/**/*'+(wd)+'*.txt', recursive=True):
        # 文字列検索 先頭含まない なぜ???
        # for p in glob.glob((target_path)+'/**/*'+(wd)+'*.ZIP', recursive=True):
        # 拡張子を変数化
        # 先頭以外も選択される for p in glob.glob((target_path)+'/**/*'+(wd)+'*.'+(ext_name), recursive=True):
        for p in glob.glob((target_path)+'/**/'+(wd)+'*.'+(ext_name), recursive=True):
        # 文字列検索 先頭含む
        # for p in glob.glob((target_path)+'/**/'+(wd)+'*.ZIP', recursive=True):
            shutil.move(p, (move_path))
            print(p)
        print('ファイルのMoveが終了しました')
        xxx = xxx + 1

except:
    print('同名ファイルが発見されました。')
    print('【例外処理】として 終了します')
    print('同名ファイルを処理した後に')
    print('再度【本ぷろぐらむ】を実行してください')
    # pass
# =============== END END END END END