Pythonでファイルやフォルダを自動でバックアップする方法|自作する業務自動化ツール
こんにちは、しゃちくです。
みなさんは、大切なファイルを間違えて上書きしたことはないでしょうか?
社内ネットワークに保存していたファイルを、編集されて台無しにされたことはないでしょうか?
大切なファイルが入ったフォルダを、毎日自動でバックアップできたら便利だと思いませんか?
Pythonなら、簡単なプログラムを書くだけで、ファイルやフォルダのバックアップを自動化することができます!
spyderの使い方が分からない方や、エラーが出る方は下のボタンをクリックしてください。
spyderの使い方(ファイル作成・プログラム実行など)が分からない方はクリック
spiderのインストールがまだの方
「Anaconda Powershell Prompt」や「spyder」が分からない方は「Anacondaをインストール|pythonが動く環境を構築しよう」をご覧ください。
新しいファイルを作成する
画面上部のツールバーの中の「用紙」のようなアイコンをクリックすると作成できます。
ショートカットキー Ctrl+N でも作成することが可能です。
プログラムを全部実行する
画面上部のツールバーの中の「再生ボタン」のようなアイコンをクリックするとプログラムが動きます。書いてあるプログラムを全て実行します。
ショートカットキー F5 でも実行することが可能です。
プログラムを一部実行する
画面上部のツールバーの中の「カーソル」のようなアイコンをクリックすると、カーソルを置いている行のプログラムだけが実行されます。何行かを範囲選択している場合は、選択している行のプログラムだけが実行されます。
ショートカットキー F9 でも実行することが可能です。
ModuleNotFoundError が出る方はクリック
「ライブラリがインストールされてないですよ」というエラー文です。ライブラリをインストールして解消しましょう。インストールはとても簡単です。「Anaconda Powershell Prompt」を新たに立ち上げ、適切なコマンドを貼り付けてエンターを押すだけです。
ModuleNotFoundErrorに続く文字によって、コマンドが異なりますので、エラー文をよく見て適切なコマンドを貼り付けてください。
ModuleNotFoundError: No module named 'webdriver_manager'
pip install webdriver-manager
「Anaconda Powershell Prompt」を新しく立ち上げます。そこに上記コードをコピーしてエンターを押します。必要なライブラリが自動でインストールされるので、終わるまで待ちます。
ModuleNotFoundError: No module named 'selenium'
pip install selenium
「Anaconda Powershell Prompt」を新しく立ち上げます。そこに上記コードをコピーしてエンターを押します。必要なライブラリが自動でインストールされるので、終わるまで待ちます。
ファイルを指定しコピーする
早速プログラムを書いていきますので、spyderを立ち上げましょう。spiderが立ち上がったら、新しいファイルを作成します。
spyderの使い方を知りたい場合や、エラーが出る方はコチラを参考にしてください。
テスト用に、形式が異なるファイルを5つ作成しました。
①バックアップテスト_Pythonファイル.py
②バックアップテスト_CSV.csv
③バックアップテスト_エクセル.xlsx
④バックアップテスト_テキスト.txt
⑤バックアップテスト_ワード.docx
このファイル達を、「バックアップ先」というフォルダ内にコピーするプログラムを書きます。
結論から言うと以下のようになります。
#ファイルのコピーや削除のためのライブラリ
import shutil
#「バックアップテスト_Pythonファイル.py」 を 「バックアップ先フォルダ」 にコピーする
shutil.copy2("C:/Users/shati/OneDrive/デスクトップ/バックアップテスト_Pythonファイル.py", "C:/Users/shati/OneDrive/デスクトップ/バックアップ先")
#「バックアップテスト_CSV.csv」 を 「バックアップ先フォルダ」 にコピーする
shutil.copy2("C:/Users/shati/OneDrive/デスクトップ/バックアップテスト_CSV.csv", "C:/Users/shati/OneDrive/デスクトップ/バックアップ先")
#「バックアップテスト_エクセル.xlsx」 を 「バックアップ先フォルダ」 にコピーする
shutil.copy2("C:/Users/shati/OneDrive/デスクトップ/バックアップテスト_エクセル.xlsx", "C:/Users/shati/OneDrive/デスクトップ/バックアップ先")
#「バックアップテスト_テキスト.txt」 を 「バックアップ先フォルダ」 にコピーする
shutil.copy2("C:/Users/shati/OneDrive/デスクトップ/バックアップテスト_テキスト.txt", "C:/Users/shati/OneDrive/デスクトップ/バックアップ先")
#「バックアップテスト_ワード.docx」 を 「バックアップ先フォルダ」 にコピーする
shutil.copy2("C:/Users/shati/OneDrive/デスクトップ/バックアップテスト_ワード.docx", "C:/Users/shati/OneDrive/デスクトップ/バックアップ先")
しっかりコピーされました。
要するに
shutil.copy2("コピーしたいファイルのパス", "バックアップ先のフォルダのパス")
の繰り返しです。
ファイルの種類ごとにコードが変わることもなく簡単ですね!
※バックアップ先のフォルダに同じ名前のファイルがあると上書きされますのでご注意ください。
ファイルのパスを調べる方法
パスを調べたいファイルやフォルダを、右クリックなどで普通にコピーし、Spyderエディタにペーストすると「/」で区切られた文字になりますが、それがそのままパスになります。「”」と「”」に挟んで使います。
フォルダ内のファイルをまるごとコピーする
次はフォルダを丸ごとバックアップする方法です。
まず、「バックアップしたいファイルが入ったフォルダ」を作成します。
その中に、先ほど作成した5つのファイルを入れます。
「バックアップしたいファイルが入ったフォルダ」を「丸ごとバックアップしたフォルダ」という名前のフォルダとしてデスクトップにコピーします。
結論から言うと以下のコードになります。
#フォルダごとコピーや削除をするためのライブラリ
from distutils.dir_util import copy_tree
#「バックアップしたいファイルが入ったフォルダ」 を 「丸ごとバックアップしたフォルダ」 としてコピーする
copy_tree("C:/Users/shati/OneDrive/デスクトップ/バックアップしたいファイルが入ったフォルダ","C:/Users/shati/OneDrive/デスクトップ/丸ごとバックアップしたフォルダ")
しっかりフォルダが作成されました。
要するに
copy_tree("コピーしたいフォルダのパス", "バックアップ先のフォルダ名のパス")
とするだけで、中身ごとコピーされるので超簡単ですね!
※バックアップ先のフォルダ名を、実在するフォルダの名前にすると、中身が上書きされますのでご注意ください。
バックアップについて
今回は説明がしやすかったため、デスクトップ内ですべての作業を行いました。
バックアップは、外部ストレージ(外付けHDDやSSD)や、ネットワークフォルダ(NAS)、Dドライブなど、作業領域とは離れた場所にするのが鉄則です。
しゃちくは、Pythonで書いたプログラムが入っているフォルダを、ネットワークフォルダ(NAS)に毎日コピーしています。
ネットワークフォルダ(NAS)や外部ストレージ(外付けHDDやSSD)などをお持ちの方は、ぜひこのプログラムでバックアップを自動化するといいと思います!
Pythonにさせるほうが、圧倒的に正確で、圧倒的に早いので!
書いたプログラムをエグゼにしてタイムスケジューラに組み込めば、定期的なバックアップも可能です。
これができれば全自動ですね!
ひとり親家庭・働く女性支援!MamaEduプロジェクト!
ひとり親家庭の方々に向けた、Webスキルを身に着けることができる「インターネット・アカデミー」をご紹介します。インターネット・アカデミーは、1995年に開校した日本初のWeb専門スクールで、Webデザイン、Webマーケティング、プログラミング、動画編集など、現場で活躍できるIT人材の育成を行っています。3万人以上の卒業生が活躍しており、2022年にはTBSテレビ「news23」のSDGs特集でも紹介されるなど、注目を集めています。
特に、ひとり親向けの給付金制度を活用した場合、最大で193万円受給しながら勉強ができるという大変お得なシステムがあります。Webデザイン、Webマーケティング、プログラミングなど、15コース以上の給付金対象のコースがあり、国の給付金を活用して学べる点が魅力です。また、キャリアプロデューサーによる就職支援や、女性向けの「mamaeduプロジェクト」など、ひとり親家庭の方々をサポートする取り組みも充実しています。
Webスキルを身に着けることによって、将来的には自分自身のキャリアアップにもつながりますし、求人市場でも高い需要があります。是非、インターネット・アカデミーを通じて、新しいスキルを身に着け、将来の夢を実現してみてはいかがでしょうか。
投稿
- SQL基礎知識〜データ型編〜 (2021年11月28日)
- SQL基礎知識〜PRIMARY KEY編〜 (2021年11月28日)
- SQL基礎知識〜テーブルの制約編〜 (2021年11月29日)
- SQL基礎知識〜DROP・DELETE・TRUNCATE編〜 (2022年4月2日)
- Anacondaをインストール|pythonが動く環境を構築しよう (2022年4月4日)
- Spyder5の日本語化|pythonを書きやすくしよう (2022年4月10日)
- pythonでPOS+foodレジ(ポスタスフード)の管理画面から売上CSVをダウンロードする|自作する業務自動化ツール (2022年5月29日)
- Pythonでファイルやフォルダを自動でバックアップする方法|自作する業務自動化ツール (2022年7月17日)
- PythonのrequestsライブラリでHTTPリクエストを送信する方法:基本的な使い方からファイルのアップロード、セッションの使用まで (2023年3月18日)
- Pythonのrequestsライブラリで学ぶHTTPエラー処理の基本 (2023年3月19日)
- CSVファイルをPandasで読み込もう!read_csvの使い方とオプション解説 (2023年3月21日)
- データ集計を簡単に!Pandasのgroupby()メソッドの活用法 (2023年3月22日)
- Python Lambda関数入門:便利な書き方と使い方 (2023年3月23日)