■ 動画フォルダのバックアップ自動化プログラムを作成しました
今日は、動画フォルダをバックアップフォルダへコピーの自動化をするためのPythonプログラムを作成しました。
これまで手作業で行っていたフォルダ整理を自動化し、
同じ名前のフォルダがすでに存在する場合はスキップし、存在しないものだけをコピーする仕組みになっています。
■ 作成したプログラム
from pathlib import Path
import shutil
# =====================
# ①設定(ここだけ触れば動く)
# =====================
SOURCE_DIR = Path(r'\\MINITANK\AVtank$\Hozon')
DEST_DIR = Path(r'D:\TANK\new_Hozon')
def main():
for folder in SOURCE_DIR.iterdir():
# ② フォルダ以外は無視
if not folder.is_dir():
continue
dst = DEST_DIR / folder.name
# ③ 既に存在する場合はスキップ
if dst.exists():
print(f'[SKIP] {folder.name} は既に存在')
continue
# ④ コピー実行
print(f'[COPY] {folder.name} → new_Hozon')
shutil.copytree(folder, dst)
if __name__ == "__main__":
# ⑤ main関数実行
main()
■ コードのポイント解説
① 設定部分を分離
SOURCE_DIR
DEST_DIR
ここだけ変更すれば、別環境でもそのまま動画整理の自動化をできます。
② フォルダだけ処理する
if not folder.is_dir():
continue
ファイルは無視し、フォルダのみを対象にしています。
③ 重複フォルダはスキップ
if dst.exists():
すでに同じ名前のフォルダが存在する場合はコピーを行いません。
これにより、二重コピーや上書き事故を防ぐことができます。
④ フォルダごとコピー
shutil.copytree(folder, dst)
フォルダ単位で完全コピーを行います。
中のファイルも含めてそのまま複製されます。
⑤ main関数+実行制御
if __name__ == "__main__":
main()
このファイルを直接実行したときだけ処理が動くようにしています。
他のPythonファイルから読み込んだ場合は自動実行されません。
■ 工夫したポイント
今回のプログラムでは、以下の点を意識しました。
- 設定部分をまとめて変更しやすくした
- フォルダ単位で処理するようにした
- 既に存在するフォルダはスキップして重複を防止
- 実行ログを表示して処理状況が分かるようにした
■ 作ってみた感想
初めて実用レベルの自動化プログラムを組んでみましたが、
思っていたよりシンプルなコードで実現できることに驚きました。
これまでは手作業で行っていた動画フォルダ整理も、
少しのコードで自動化できることが分かり、
今後はいろいろなことが自動化できそうだと感じています。
Pythonはアイデア次第で作業効率を大きく改善できるため、
今後も少しずつ自動化の範囲を広げていきたいと思います。
■ まとめ
今回のようなフォルダコピー処理はシンプルですが、
「自動化の第一歩」としては非常に分かりやすい題材でした。
今後は削除処理や移動処理なども組み合わせて、
より実用的な自動化ツールへ発展させていきたいです。
コードも簡単なものですが、もしフォルダ整理の自動化を行ない方がいらっしゃればぜひ使ってください。

コメント