MENU

Python学習 〜動画ファイル整理ツールを自作してみる〜⑤

目次

shutilで動画フォルダを自動で移動・バックアップする

前回は、if文を利用して動画フォルダの振り分けルールを作成しました。

今回は、いよいよ実際にフォルダを移動・コピーする処理を実装します。

ここまで来ると、ただの学習用コードではなく、「実際に使える自分専用ツール」になってきます。

今回の目標

今回実装するルールは以下の通りです。

先頭番号処理
1Hozonへ移動
2Deleteへ移動
3Hozonへ移動+Backupへコピー

例えば、

1旅行動画
2不要動画
3永久保存動画

というフォルダがあった場合、

Hozon/旅行動画
Delete/不要動画
Hozon/永久保存動画
Backup/永久保存動画

という状態になることを目指します。

shutilをインポートする

ファイルやフォルダの移動・コピーには、Python標準ライブラリのshutilを使用します。

import shutil
from pathlib import Path

フォルダを移動する

フォルダの移動は、shutil.move()で行えます。

shutil.move(folder, hozon / new_name)

例えば、

1旅行動画

というフォルダがあれば、

Hozon/旅行動画

へ移動します。

フォルダをコピーする

バックアップには、shutil.copytree()を利用します。

shutil.copytree(folder, backup / new_name)

これにより、フォルダの中身を含めて丸ごとコピーできます。

完成した振り分け処理

これまで学習した内容を組み合わせると、以下のようになります。

from pathlib import Path
import shutil

base = Path('/Volumes/Doga')

sozai = base / 'Sozai'
hozon = base / 'Hozon'
delete = base / 'Delete'
backup = base / 'Backup'

for folder in sozai.iterdir():

    if not folder.is_dir():
        continue

    head = folder.name[0]
    new_name = folder.name[1:]

    if head == '1':
        shutil.move(folder, hozon / new_name)

    elif head == '2':
        shutil.move(folder, delete / new_name)

    elif head == '3':
        shutil.copytree(folder, backup / new_name)
        shutil.move(folder, hozon / new_name)

このプログラムで学べたこと

今回の動画ファイル整理ツールでは、

  • pathlibによるパス操作
  • for文
  • if文
  • continue
  • 文字列のインデックス
  • スライス
  • shutilによる移動
  • shutilによるコピー
  • 自動化プログラムの設計

など、多くのPythonの基礎を実践的に学ぶことができました。

本を読んで学ぶだけではなく、「自分が実際に使うプログラム」を作ることで、理解がかなり深まったと感じています。

今後やりたいこと

今回のプログラムは最低限の機能ですが、今後は、

  • キーワードによる自動振り分け
  • エラー処理の追加
  • 重複チェック
  • ログの保存
  • チェックボックス付きGUI化

なども実装していきたいと思っています。

Python学習のアウトプットとして始めた自作ツールですが、最終的には毎日使う実用ツールに育てていきたいと思います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

FIREを目指しながら、投資・プログラミング・家庭菜園・資格勉強に取り組んでいます。試行錯誤しながら積み上げる日々を記録するブログです。

コメント

コメントする

目次