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` を活用して効率的なファイル管理を実現しましょう! 🚀