【初心者向け】Pythonで簡易バックアップツールを作ろう!|Python100本ノック Lesson 17

Pythonで学べる100のミニアプリ ロードマップ

はじめに

第16回では「ログ自動保存アプリ」を作って、プログラムの実行記録をファイルに残す仕組みを学んだな。
今回は実用度をさらに高めて、「簡易バックアップツール」 を作ってみるで!

バックアップとは、ファイルをコピーして別の場所に保存しておくことや。
これを自動化するだけで、日々の作業効率や安全性がグッと上がるんや。


完成イメージ

コピー対象ファイル:data.txt

実行すると:

data.txt を backup_data.txt にコピーしました!

フォルダ内にコピーが作成される。


ヒント(使う要素)

  • shutil.copy() → ファイルをコピーする便利関数
  • input() → ユーザーにファイル名を聞く
  • try-except → ファイルが存在しない場合のエラー処理

コード全文(基本版)
# Lesson 17: 簡易バックアップツール
import shutil

src = input("バックアップしたいファイル名を入力してください:")
dst = "backup_" + src

try:
    shutil.copy(src, dst)
    print(f"{src} を {dst} にコピーしました!")
except FileNotFoundError:
    print("エラー:指定したファイルが見つかりません。")


改良版(日付つきバックアップ):同じファイルを何度もバックアップすると上書きされるから、日付つきを作るのもええで。
# Lesson 17: 簡易バックアップツール(改良版)
import shutil
from datetime import datetime

src = input("バックアップしたいファイル名を入力してください:")
date = datetime.now().strftime("%Y%m%d_%H%M%S")
dst = f"backup_{date}_{src}"

try:
    shutil.copy(src, dst)
    print(f"{src} を {dst} にコピーしました!")
except FileNotFoundError:
    print("エラー:指定したファイルが見つかりません。")


実行方法

  1. バックアップしたいファイル(例: data.txt)を用意
  2. コードを lesson17.py として保存
  3. ターミナルで実行:
python lesson17.py
  1. ファイル名を入力すると、同じフォルダにバックアップが作成される

応用アイデア

  • 複数ファイルをまとめてバックアップ
  • フォルダごとコピーする(shutil.copytree() を利用)
  • 定期的にバックアップする(スケジューラと組み合わせる)

まとめ

今回は 「簡易バックアップツール」 を作ったで!
shutil.copy() を使えば、たった1行でファイルをコピーできるんや。
日付つきにすれば履歴管理もバッチリやな。

👉 次回は Lesson 18: フォルダ内のファイル一覧表示
ディレクトリを操作して、ファイルを一覧で出力するツールを作ってみるで。