Pythonのshutilモジュールを使ってファイルのコピー、移動、削除などの操作方法を解説します。
shutilモジュールって何ですか?
shutilモジュールは、Pythonでファイルやディレクトリを操作するための標準ライブラリです。ファイルのコピー、移動、削除などの操作を行うことができます。
shutilモジュールとは
shutilモジュールは、Pythonでファイルやディレクトリを操作するための標準ライブラリです。ファイルのコピー、移動、削除などの操作を行うことができます。
shutilモジュールは、ファイルやディレクトリを操作するための多数の関数を提供しています。例えば、ファイルをコピーするためにはshutil.copy()関数を使用し、ファイルを移動するためにはshutil.move()関数を使用します。また、ディレクトリを再帰的にコピーするためにはshutil.copytree()関数を使用し、ディレクトリを再帰的に削除するためにはshutil.rmtree()関数を使用することができます。
shutilモジュールは、Pythonの標準ライブラリに含まれているため、追加のライブラリをインストールする必要はありません。また、shutilモジュールは、異なるプラットフォーム上でも動作するため、ファイルやディレクトリの操作には非常に便利です。
ファイルをコピーする方法
ファイルをコピーするためには、shutilモジュールのshutil.copy()関数、shutil.copy2()関数、shutil.copytree()関数のいずれかを使用することができます。
shutil.copy()関数は、指定されたファイルを別の場所にコピーするために使用されます。次のように使用します。
import shutil
src = 'source_file.txt'
dst = 'destination_folder/'
shutil.copy(src, dst)
上記の例では、’source_file.txt’というファイルを’destination_folder/’というディレクトリにコピーしています。コピー先のディレクトリが存在しない場合は、自動的に作成されます。
shutil.copy2()関数は、shutil.copy()関数と同様にファイルをコピーすることができますが、ファイルのメタデータも保持されます。メタデータには、ファイルの作成日時、更新日時、パーミッションなどが含まれます。次のように使用します。
import shutil
src = 'source_file.txt'
dst = 'destination_folder/'
shutil.copy2(src, dst)
shutil.copytree()関数は、指定されたディレクトリを再帰的にコピーするために使用されます。次のように使用します。
import shutil
src = 'source_folder/'
dst = 'destination_folder/'
shutil.copytree(src, dst)
上記の例では、’source_folder/’というディレクトリを’destination_folder/’というディレクトリに再帰的にコピーしています。コピー先のディレクトリが存在しない場合は、自動的に作成されます。
ファイルを移動する方法
ファイルを移動するためには、shutilモジュールのshutil.move()関数を使用することができます。
shutil.move()関数は、指定されたファイルを別の場所に移動するために使用されます。次のように使用します。
import shutil
src = 'source_file.txt'
dst = 'destination_folder/'
shutil.move(src, dst)
上記の例では、’source_file.txt’というファイルを’destination_folder/’というディレクトリに移動しています。移動先のディレクトリが存在しない場合は、自動的に作成されます。
shutil.move()関数を使用すると、ファイル名を変更することもできます。次のように使用します。
import shutil
src = 'source_file.txt'
dst = 'destination_folder/new_name.txt'
shutil.move(src, dst)
上記の例では、’source_file.txt’というファイルを’destination_folder/new_name.txt’というファイルに移動しています。ファイル名を変更する場合は、移動先のパスに新しいファイル名を指定します。
ファイルを削除する方法
ファイルを削除するためには、Pythonの標準ライブラリであるosモジュールを使用することができます。具体的には、osモジュールのos.remove()関数、os.unlink()関数を使用することができます。
os.remove()関数は、指定されたファイルを削除します。次のように使用します。
import os
file_path = 'file.txt'
os.remove(file_path)
上記の例では、’file.txt’というファイルを削除しています。
os.unlink()関数は、os.remove()関数と同様に指定されたファイルを削除します。次のように使用します。
import os
file_path = 'file.txt'
os.unlink(file_path)
上記の例でも、’file.txt’というファイルを削除しています。
注意点としては、ファイルを削除する前に、バックアップを取ることをお勧めします。また、削除するファイルが使用中である場合、PermissionErrorが発生することがあります。
ディレクトリをコピーする方法
ディレクトリを再帰的にコピーするためには、shutilモジュールのshutil.copytree()関数を使用することができます。
shutil.copytree()関数は、指定されたディレクトリを再帰的にコピーします。次のように使用します。
import shutil
src = 'source_folder/'
dst = 'destination_folder/'
shutil.copytree(src, dst)
上記の例では、’source_folder/’というディレクトリを’destination_folder/’というディレクトリに再帰的にコピーしています。コピー先のディレクトリが存在しない場合は、自動的に作成されます。
shutil.copytree()関数を使用すると、ディレクトリのコピー時にパーミッションもコピーされます。ただし、ユーザーが所有するディレクトリやファイルをコピーする場合、プログラムを実行するユーザーに必要な権限があることを確認する必要があります。
また、shutil.copytree()関数は、コピー先のディレクトリが存在する場合にはエラーが発生します。この場合は、shutil.rmtree()関数を使用して、ディレクトリを削除することができます。
ディレクトリを移動する方法
ディレクトリを移動するためには、shutilモジュールのshutil.move()関数を使用することができます。
shutil.move()関数は、指定されたディレクトリを別の場所に移動するために使用されます。次のように使用します。
import shutil
src = 'source_folder/'
dst = 'destination_folder/'
shutil.move(src, dst)
上記の例では、’source_folder/’というディレクトリを’destination_folder/’というディレクトリに移動しています。移動先のディレクトリが存在しない場合は、自動的に作成されます。
shutil.move()関数を使用すると、ディレクトリ名を変更することもできます。次のように使用します。
import shutil
src = 'source_folder/'
dst = 'destination_folder/new_folder_name'
shutil.move(src, dst)
上記の例では、’source_folder/’というディレクトリを’destination_folder/new_folder_name’というディレクトリに移動しています。ディレクトリ名を変更する場合は、移動先のパスに新しいディレクトリ名を指定します。
ディレクトリを削除する方法
ディレクトリを再帰的に削除するためには、shutilモジュールのshutil.rmtree()関数を使用することができます。
shutil.rmtree()関数は、指定されたディレクトリを再帰的に削除します。次のように使用します。
import shutil
dir_path = 'directory/'
shutil.rmtree(dir_path)
上記の例では、’directory/’というディレクトリを再帰的に削除しています。
shutil.rmtree()関数を使用する場合は、注意が必要です。この関数を使用すると、指定されたディレクトリ以下のすべてのファイルやディレクトリが削除されます。削除する前に、バックアップを取ることをお勧めします。
また、削除するディレクトリが使用中である場合、PermissionErrorが発生することがあります。削除する前に、そのディレクトリが使用されていないことを確認する必要があります。
リスキリングでキャリアアップしてみませんか?
リスキリング(学び直し)は、経済産業省が推奨しており、
今だけ、最大70%のキャッシュバックを受けることができます。
最大70%の給付金が出るおすすめのプログラミングスクール!
国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!
興味のある方はすぐに確認しましょう。
まとめ
Pythonのshutilモジュールを使ってファイルのコピー、移動、削除などの操作方法を解説しました。
- shutilモジュールは、Pythonでファイルやディレクトリを操作するための標準ライブラリである。
- shutil.copy()関数を使用すると、指定されたファイルを別の場所にコピーすることができる。
- shutil.move()関数を使用すると、指定されたファイルやディレクトリを別の場所に移動することができる。
- osモジュールのos.remove()関数やos.unlink()関数を使用すると、指定されたファイルを削除することができる。
- shutil.copytree()関数を使用すると、指定されたディレクトリを再帰的にコピーすることができる。
- shutil.rmtree()関数を使用すると、指定されたディレクトリを再帰的に削除することができる。
shutilモジュールやosモジュールを使用することで、Pythonでファイルやディレクトリを操作することが簡単にできました!
ファイルやディレクトリの操作は、重要な作業の一つです。操作前には必ずバックアップを取り、誤って削除したり上書きしたりしないようにしましょう。また、ファイルやディレクトリを操作する際には、そのファイルやディレクトリが使用中でないことを確認することも重要です。
コメント