Pythonでフォルダをコピーする方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonでフォルダをコピーする方法について現役エンジニアが解説しています。Pythonでフォルダをコピーするには、shutilモジュールを使います。shutilモジュールは、ファイルやフォルダ(ディレクトリ)を簡易に扱うためのモジュールです。copytreeメソッドでコピーすることが出来ます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

Pythonでフォルダをコピーする方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonでフォルダをコピーする方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

shutilモジュールの使い方

shutilは、ファイルやフォルダ(ディレクトリ)を簡易に扱うためのモジュールです。osモジュールでも類似の操作を行えますが、shutilのほうが、より高水準な(人間にとってわかりやすい)利用手続になっています。

copy関数とcopytree関数の使い方と比較

shutil.copyはファイルをコピーする関数です。コピー対象はファイルで、フォルダのコピーには使えません。shutil.copytreeはフォルダをコピーする関数です。フォルダがファイルを含んでいる場合には、中のファイルも含めて再帰的にコピーします。

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に書いてみよう

ソースコード

import shutil
shutil.copytree('folder_a', 'folder_b')

 

前提条件

以下のようなフォルダ構成を想定します。

folder_a
 - file_a.txt
 - file_b.txt
folder_b
・folder_aフォルダがあります。
・folder_aフォルダ内には、file_a.txtとfile_b.txtファイルがあります。

 

実行結果

以下のようにfolder_aフォルダがfolder_bフォルダにコピーされました。

folder_a
 - file_a.txt
 - file_b.txt
folder_b
 - file_a.txt
 - file_b.txt

 

解説

folder_bフォルダが既に存在すると、上書きはできないので、以下のような例外が発生します。

FileExistsError: [WinError 183] 既に存在するファイルを作成することはできません。: 'folder_b'

shutil.copyではコピーできず、以下のような例外が発生します。

PermissionError: [Errno 13] Permission denied: 'folder_a'

 

まとめ

この記事ではshutil.copytree関数で、フォルダをコピーする方法を紹介しました。

監修してくれたメンター

橋本紘希(はしもとひろき)

システムインテグレータ企業勤務のシステムエンジニア。

開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。