Python shutil ライブラリ完全ガイド
Python 標準ライブラリの shutil は、ファイルやディレクトリの操作を簡単に行うためのツールを提供します。本記事では、shutil の主要な機能とその活用方法について詳しく解説します。
1. shutil ライブラリの概要
shutil は、ファイルやディレクトリのコピー、移動、削除などの操作を簡単に行うための標準ライブラリです。
- OS に依存せずに動作し、シンプルな API でファイル管理を実現できます。
- バックアップや一時ファイルの操作、自動化スクリプトに役立ちます。
インストール方法
shutil は Python の標準ライブラリなので、追加のインストールは不要です。
---
## 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` を活用して効率的なファイル管理を実現しましょう! 🚀