Pythonにおけるcopyfileの利用方法について現役エンジニアが解説【初心者向け】

初心者向けにPythonにおけるcopyfileの利用方法について解説しています。shutilモジュールのcopyfileを使うとファイルを複製することができます。copyfileの書き方と実行結果をサンプルコードで確認しましょう。

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

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

 

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

 

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

 

田島悠介

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

大石ゆかり

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

田島悠介

copyfileの利用方法について詳しく説明していくね!

大石ゆかり

お願いします!

目次

 

copyfileとは

Pythonにおけるcopyfileとは、標準ライブラリのshutilモジュールの中のファイルを複製する機能を持った関数になります。

copyfileを使用する事で、指定したファイルを複製可能です。

 

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

copyfileの使い方

copyfileを使用するには、下記のように使用しましょう。

# shutilライブラリをインポートする
import shutil

# copyfileを使用してファイルを複製
shutil.copyfile( src , dst )

copyfile関数の引数 src / dst については下記のように複製元・複製先のファイルパスを設定します。

src:複製元ファイルパス
dst:複製先ファイルパス

 

copyfileを利用してファイルを複製してみよう

サンプルコードを参考にcopyfileを利用してファイルを複製するコードを作成してみましょう。

まずはじめに、複製に使用するファイルやフォルダを用意します。

[サンプルファイルディレクトリ構造] sample
  |
  |--dir1
  |  |
  |  |--sample.txt
  |
  |--dir2
  |
  |--copyfile_sample.py

 

サンプルコード

import shutil

# 同じディレクトリ"dir1"にファイルを複製
shutil.copyfile('./dir1/sample.txt','./dir1/sample_copy.txt')

# 異なるディレクトリ"dir2"にファイルを複製
shutil.copyfile('./dir1/sample.txt','./dir2/sample.txt')

 

実行結果

サンプルコードを実行すると、dir1とdir2にそれぞれファイルが複製されるという結果になるでしょう。

 

解説

コード1行目は、copyfileを使用するためにshutilモジュールをimportしています。

コード4行目は、copyfileを使用して、ディレクトリdir1に存在するファイルsample.txtを同じディレクトリにsample_copy.txtとして複製するものです。

コード7行目もcopyfileを使用し、ディレクトリdir1に存在しているsample.txtを、異なるディレクトリdir2にsample.txtとして複製しています。

実行結果では、それぞれファイルが複製されている事が確認可能です。

 

まとめ

今回は、Pythonにおけるcopyfileの利用方法について紹介しました。

ファイル操作を必要とするプログラムなどでは必須の手法となりますので今回の記事を参考に積極的に活用してみてください。

また、今回紹介したshutilモジュールではディレクトリの削除やディレクトリのコピーができます。

加えて、他のモジュールを使用する事でディレクトリの作成やファイルやディレクトリの存在確認など、様々なファイル操作がPython上で可能になります。

 

執筆してくれたメンター

菅繕久

現在はフリーランスのエンジニアをしていてプログラミング歴は8年目になります。

普段は Python、FileMaker等を使って様々な業務で活用できるIoTプロダクトRPAツールを作成しています。

開発実績としては、業務自動化ツール(在庫管理・発注・ファイル操作 etc)、電子カルテシステム、ロボット用プログラムなどがあります。

TechAcademy ではPythonコースを担当しております。

 

大石ゆかり

Pythonにおけるcopyfileの利用方法がよく分かったので良かったです!

田島悠介

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

大石ゆかり

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

 

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

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。