Pythonでは、shutil
という標準ライブラリを使ってファイルを簡単にコピーすることができます。この記事では、shutil
の関数を使ってファイルをコピーする方法を解説します。
shutilモジュールとは
shutil
モジュールは、ファイルのコピーで使用される定番モジュールです。Pythonの標準モジュールであるため、インストールせずに使用することができます。
ファイルのコピー方法
shutil
モジュールには、ファイルのコピー用の関数が3種類用意されています。
shutil.copyfile
: ファイルのパーミッションも、メタデータもコピーしない。shutil.copy
: ファイルのパーミッションはコピーするが、メタデータはコピーしない。shutil.copy2
: ファイルのパーミッションもメタデータもコピーする。
それぞれの関数について、サンプルコードを交えながら使用方法を紹介します。
shutil.copyfile
shutil.copyfile
関数は、ファイルのみをコピーし、パーミッションデータやメタデータはコピーしません。
import shutil
src = 'source_file_path'
dst = 'destination_file_path'
shutil.copyfile(src, dst)
shutil.copy
shutil.copy
関数は、パーミッションデータはコピーしますが、メタデータはコピーしません。
import shutil
src = 'source_file_path'
dst = 'destination_file_path'
shutil.copy(src, dst)
shutil.copy2
shutil.copy2
関数は、パーミッションデータ、メタデータともにコピーします。
import shutil
src = 'source_file_path'
dst = 'destination_file_path'
shutil.copy2(src, dst)
上書きを避ける方法
shutil.copyfile
、shutil.copy
、shutil.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でのファイル操作をより効率的に行いましょう。