Python shutil ライブラリ完全ガイド

Python 標準ライブラリの shutil は、ファイルやディレクトリの操作を簡単に行うためのツールを提供します。本記事では、shutil の主要な機能とその活用方法について詳しく解説します。
1. shutil ライブラリの概要
shutilは、ファイルやディレクトリのコピー、移動、削除などの操作を簡単に行うための標準ライブラリです。- OS に依存せずに動作し、シンプルな API でファイル管理を実現できます。
- バックアップや一時ファイルの操作、自動化スクリプトに役立ちます。
インストール方法
shutil は Python の標準ライブラリなので、追加のインストールは不要です。
import shutil
2. 主な機能と使用例
(1) ファイルのコピー(copy, copy2)
import shutil shutil.copy("source.txt", "destination.txt") # 内容のみコピー shutil.copy2("source.txt", "destination2.txt") # メタデータもコピー
使用例: ファイルをコピーし、バックアップやファイル管理を簡単に行う。
(2) ディレクトリのコピー(copytree)
import shutil shutil.copytree("source_dir", "destination_dir")
使用例: ディレクトリ全体をコピーして、フォルダのバックアップを作成する。
(3) ファイルの移動・名前変更(move)
import shutil shutil.move("old_name.txt", "new_name.txt") shutil.move("file.txt", "backup_folder/")
使用例: ファイルの整理や、データの移動を簡単に行う。
(4) ディレクトリの削除(rmtree)
import shutil shutil.rmtree("folder_to_delete")
使用例: 不要になったディレクトリを一括削除する。
(5) ディスク容量の取得(disk_usage)
import shutil usage = shutil.disk_usage("/") print(f"合計: {usage.total} バイト") print(f"使用済み: {usage.used} バイト") print(f"空き容量: {usage.free} バイト")
使用例: ディスクの空き容量を確認し、ファイル操作を適切に管理する。
(6) シンボリックリンクの作成(symlink)
import os os.symlink("source.txt", "symlink.txt")
使用例: シンボリックリンクを作成し、元ファイルを変更せずに別の名前で参照できるようにする。
(7) 一時ディレクトリの作成(mkdtemp)
import tempfile temp_dir = tempfile.mkdtemp() print(f"作成された一時ディレクトリ: {temp_dir}")
使用例: プログラム実行時に一時ディレクトリを作成し、不要になったら削除できる。
(8) ファイルシステムの情報取得(which)
import shutil python_path = shutil.which("python") print(f"Python の実行パス: {python_path}")
使用例: 特定のプログラムの実行パスを検索し、利用可能かを確認する。
(9) ディレクトリの作成と削除(mkdir & rmdir)
import os os.mkdir("new_folder") os.rmdir("new_folder")
使用例: 新しいディレクトリを作成し、不要になったら削除する。
(10) ファイルの圧縮(make_archive)
import shutil shutil.make_archive("backup", "zip", "source_dir")
使用例: ディレクトリを ZIP 形式に圧縮し、バックアップや配布用に活用する。
3. shutil の主な機能
| 機能 | 説明 |
|---|---|
copy |
ファイルをコピー(メタデータなし) |
copy2 |
ファイルをコピー(メタデータ付き) |
copytree |
ディレクトリを再帰的にコピー |
move |
ファイル・ディレクトリを移動 |
rmtree |
ディレクトリを削除 |
disk_usage |
ディスクの使用状況を取得 |
まとめ
Python の shutil ライブラリを活用すると、ファイルやディレクトリの管理を簡単に自動化できます。バックアップ、整理、削除、ディスク容量の確認など、多くの用途に対応できるので、ぜひ shutil を活用して効率的なファイル管理を実現しましょう! 🚀