目次
if文で動画フォルダの振り分けルールを実装する
前回は、素材フォルダ(Sozai)内のフォルダ名から、先頭の番号を取得するところまで実装しました。
今回は、取得した番号を利用して、実際にどのフォルダへ移動するかを判定する処理を作ります。
いよいよ「自動整理ツール」らしくなってきました。
今回の目標
今回実装するルールは以下の通りです。
| 先頭番号 | 処理 |
|---|---|
| 1 | Hozonへ移動 |
| 2 | Deleteへ移動 |
| 3 | Hozonへ移動+Backupへコピー |
例えば、
1旅行動画
2不要動画
3永久保存動画
というフォルダがあった場合、
旅行動画 → Hozon
不要動画 → Delete
永久保存動画 → Hozon + Backup
となるようにします。
必要なフォルダを準備する
まずは、操作するフォルダを定義します。
from pathlib import Path
base = Path('/Volumes/Doga')
sozai = base / 'Sozai'
hozon = base / 'Hozon'
delete = base / 'Delete'
backup = base / 'Backup'
これで、各フォルダを簡単に扱えるようになりました。
if文で振り分ける
前回取得した先頭文字を使って、条件分岐を書きます。
for folder in sozai.iterdir():
if not folder.is_dir():
continue
head = folder.name[0]
new_name = folder.name[1:]
if head == '1':
print('保存')
elif head == '2':
print('削除')
elif head == '3':
print('保存+バックアップ')
実行すると、
保存
削除
保存+バックアップ
のように表示されます。
実際の移動先を確認する
いきなりファイルを移動すると危険なので、まずは移動先を表示して確認します。
for folder in sozai.iterdir():
if not folder.is_dir():
continue
head = folder.name[0]
new_name = folder.name[1:]
if head == '1':
print(hozon / new_name)
elif head == '2':
print(delete / new_name)
elif head == '3':
print(hozon / new_name)
print(backup / new_name)
例えば、
1旅行動画
2不要動画
3永久保存動画
がある場合、
/Volumes/Doga/Hozon/旅行動画
/Volumes/Doga/Delete/不要動画
/Volumes/Doga/Hozon/永久保存動画
/Volumes/Doga/Backup/永久保存動画
のように表示されます。
なぜ最初はprintなのか
自動化プログラムでは、最初から移動処理を書いてしまうと、思わぬ場所にファイルが移動してしまう危険があります。
そのため、
- 判定する
- printで確認する
- 正しいことを確認する
- 実際の移動処理を書く
という順番で開発することが大切です。
これは今回のプログラムだけでなく、今後の自動化プログラムを作るときにも役立つ考え方だと思います。
今回学んだこと
今回学んだ内容は以下の通りです。
- if、elifによる条件分岐
- 複数のフォルダをPathで管理する方法
- 条件によって処理を変更する方法
- 自動化プログラムを安全に開発する考え方
ここまでできれば、次回はいよいよ実際にフォルダを移動・コピーする処理を実装できます。
次回予告
次回は、Pythonのshutilを利用して、
- フォルダを移動する
- フォルダをコピーする
- 自動で保存・削除・バックアップを行う
という、動画ファイル整理ツールの中心部分を完成させます。

コメント