Pythonでのディスクの使用率や空き容量の調べ方について

Python,イメージ

AI実装検定のご案内

Pythonでディスクの使用率や空き容量を調べるには、標準ライブラリの shutilos を使う方法、あるいはより詳細な情報を得られるサードパーティライブラリを使う方法があります。

以下にそれぞれの方法を詳しく説明します。

目次

標準ライブラリによる基本的な方法:shutil.disk_usage

概要

Python 3.3以降では、shutil.disk_usage() を使って簡単にディスクの使用状況を取得できます。

サンプルコード

import shutil

# 対象のパス(通常は '/' または 'C:\\')
path = '/'

usage = shutil.disk_usage(path)

print(f"総容量: {usage.total / (1024**3):.2f} GB")
print(f"使用済み: {usage.used / (1024**3):.2f} GB")
print(f"空き容量: {usage.free / (1024**3):.2f} GB")

出力例

総容量: 500.11 GB  
使用済み: 321.45 GB  
空き容量: 178.66 GB  

解説

  • total: 総ディスク容量
  • used: 使用済み容量
  • free: 空き容量
  • 単位換算:1 GB = 1024^3 バイト

OSモジュールでの情報取得(UNIX向け)

LinuxやmacOSなどのUnix系OSでは、os.statvfs() を使ってより低レベルな情報を取得することも可能です。

サンプルコード

import os

stat = os.statvfs('/')

total = stat.f_frsize * stat.f_blocks      # 総容量
available = stat.f_frsize * stat.f_bavail  # 利用可能な容量(非特権ユーザー用)
free = stat.f_frsize * stat.f_bfree        # 実際の空き容量

print(f"総容量: {total / (1024**3):.2f} GB")
print(f"使用可能: {available / (1024**3):.2f} GB")
print(f"実際の空き容量: {free / (1024**3):.2f} GB")

ポイント

  • f_frsize: フラグメントサイズ(1ブロックあたりのバイト数)
  • f_blocks: 全ブロック数
  • f_bfree: 空きブロック数(すべてのユーザー向け)
  • f_bavail: 非スーパーユーザーが使用可能なブロック数

サードパーティライブラリ

より詳細な情報(マウントポイント、パーティションごとの情報など)が必要であれば、psutil を使うのがおすすめです。

インストール

!pip install psutil

サンプルコード

import psutil

partitions = psutil.disk_partitions()

for p in partitions:
    try:
        usage = psutil.disk_usage(p.mountpoint)
        print(f"=== {p.device} ({p.mountpoint}) ===")
        print(f"  総容量: {usage.total / (1024**3):.2f} GB")
        print(f"  使用済み: {usage.used / (1024**3):.2f} GB")
        print(f"  空き容量: {usage.free / (1024**3):.2f} GB")
        print(f"  使用率: {usage.percent:.1f}%")
    except PermissionError:
        print(f"{p.device} にアクセスできませんでした。")

出力例(Linux)

=== /dev/sda1 (/) ===
  総容量: 256.00 GB
  使用済み: 124.32 GB
  空き容量: 131.68 GB
  使用率: 48.6%

特長

  • 複数パーティションやマウントポイントを一覧で確認可能
  • 使用率(%)が自動で計算される
  • エラー処理がしやすい

まとめ

Python,イメージ
目的使用モジュール特長
単純な使用率や空き容量を取得したいshutil標準ライブラリ、簡潔
Linuxなどで詳細に制御したいos低レベルで制御可能
パーティションや使用率を広く監視したいpsutil高機能・実用的

以上、Pythonでのディスクの使用率や空き容量の調べ方についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次