Pythonでフォルダをコピーする方法を現役エンジニアが解説【初心者向け】
初心者向けにPythonでフォルダをコピーする方法について現役エンジニアが解説しています。Pythonでフォルダをコピーするには、shutilモジュールを使います。shutilモジュールは、ファイルやフォルダ(ディレクトリ)を簡易に扱うためのモジュールです。copytreeメソッドでコピーすることが出来ます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonでフォルダをコピーする方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。
Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
Pythonでフォルダをコピーする方法について詳しく説明していくね!
お願いします!
shutilモジュールの使い方
shutilは、ファイルやフォルダ(ディレクトリ)を簡易に扱うためのモジュールです。osモジュールでも類似の操作を行えますが、shutilのほうが、より高水準な(人間にとってわかりやすい)利用手続になっています。
copy関数とcopytree関数の使い方と比較
shutil.copyはファイルをコピーする関数です。コピー対象はファイルで、フォルダのコピーには使えません。shutil.copytreeはフォルダをコピーする関数です。フォルダがファイルを含んでいる場合には、中のファイルも含めて再帰的にコピーします。
実際に書いてみよう
ソースコード
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では、初心者でも、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。