okpy

Pythonエンジニア兼テックリーダーが、多くのプロジェクトとチーム運営から得た実践的な知識を共有するブログです。

管理を自動化するPython shutil ライブラリ

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

Python 標準ライブラリの shutil は、ファイルやディレクトリの操作を簡単に行うためのツールを提供します。本記事では、shutil の主要な機能とその活用方法について詳しく解説します。

1. shutil ライブラリの概要

  • shutil は、ファイルやディレクトリのコピー、移動、削除などの操作を簡単に行うための標準ライブラリです。
  • OS に依存せずに動作し、シンプルな API でファイル管理を実現できます。
  • バックアップや一時ファイルの操作、自動化スクリプトに役立ちます。

インストール方法

shutilPython の標準ライブラリなので、追加のインストールは不要です。

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} バイト")

使用例: ディスクの空き容量を確認し、ファイル操作を適切に管理する。


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 ディスクの使用状況を取得

まとめ

Pythonshutil ライブラリを活用すると、ファイルやディレクトリの管理を簡単に自動化できます。バックアップ、整理、削除、ディスク容量の確認など、多くの用途に対応できるので、ぜひ shutil を活用して効率的なファイル管理を実現しましょう! 🚀