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」を新しく立ち上げます。そこに上記コードをコピーしてエンターを押します。必要なライブラリが自動でインストールされるので、終わるまで待ちます。

作業時間の目安
短い
10分
以内
20分位
30分位
40分位
60分
以上
長い

ファイルを指定しコピーする

早速プログラムを書いていきますので、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スキルを身に着けることによって、将来的には自分自身のキャリアアップにもつながりますし、求人市場でも高い需要があります。是非、インターネット・アカデミーを通じて、新しいスキルを身に着け、将来の夢を実現してみてはいかがでしょうか。

<strong>しゃちく</strong><span data-color="#7bdcb5" style="background: linear-gradient(transparent 60%,rgba(123, 220, 181, 0.7) 0);" class="vk_highlighter"><br></span>
しゃちく

福岡の中小企業で、社内SEとして勤務。
主な業務は、通販の運営、自社飲食店のハンディやレジの設定、PCトラブル対応、LP作成、HP更新など。
Pythonで業務自動化ツールを100個以上自作した経験をもとに、ツールを作る方法をメインにブログを更新している。
このブログが、誰かのお役に立てば幸いです!

投稿





コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です