Pythonでは、shutil
という標準ライブラリを使用してファイルをコピーすることができます。この記事では、shutil
モジュールのcopyfile
、copy
、copy2
関数を用いたファイルのコピー方法について解説します。
shutilモジュールとは
shutil
モジュールは、Pythonの標準ライブラリで、ファイルのコピーに使用される定番モジュールです。このモジュールには、ファイルのコピー用の関数が3種類用意されています。
shutil.copyfile
: ファイルのみをコピーし、パーミッションデータやメタデータはコピーしません。shutil.copy
: パーミッションデータはコピーしますが、メタデータはコピーしません。shutil.copy2
: パーミッションデータ、メタデータともにコピーします。
ファイルのコピー方法
それぞれの関数について、サンプルコードを交えながら使用方法を紹介します。
copyfile関数
copyfile
関数は、ファイルのみをコピーし、パーミッションデータやメタデータはコピーしません。
import shutil
src = 'source_file_path'
dst = 'destination_file_path'
shutil.copyfile(src, dst)
copy関数
copy
関数は、パーミッションデータはコピーしますが、メタデータはコピーしません。
import shutil
src = 'source_file_path'
dst = 'destination_file_path'
shutil.copy(src, dst)
copy2関数
copy2
関数は、パーミッションデータ、メタデータともにコピーします。
import shutil
src = 'source_file_path'
dst = 'destination_file_path'
shutil.copy2(src, dst)
上書きを避ける方法
copyfile
関数、copy
関数、copy2
関数とも、同名のファイルがあった場合、上書きでコピーしてしまいます。上書きを避けたい場合は、os
モジュールを使ってファイルの存在確認を行い、同名のファイルが存在しないことを確認することで、上書きを回避できます。
import shutil
import os
src = 'source_file_path'
dst = 'destination_file_path'
if not os.path.exists(dst):
shutil.copy(src, dst)
以上がPythonでファイルをコピーする方法になります。これらの関数を使うことで、Pythonで簡単にファイルのコピーが可能になります。