Pythonでディスクの使用率や空き容量を調べるには、標準ライブラリの shutil
や os
を使う方法、あるいはより詳細な情報を得られるサードパーティライブラリを使う方法があります。
以下にそれぞれの方法を詳しく説明します。
目次
標準ライブラリによる基本的な方法: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%
特長
- 複数パーティションやマウントポイントを一覧で確認可能
- 使用率(%)が自動で計算される
- エラー処理がしやすい
まとめ

目的 | 使用モジュール | 特長 |
---|---|---|
単純な使用率や空き容量を取得したい | shutil | 標準ライブラリ、簡潔 |
Linuxなどで詳細に制御したい | os | 低レベルで制御可能 |
パーティションや使用率を広く監視したい | psutil | 高機能・実用的 |
以上、Pythonでのディスクの使用率や空き容量の調べ方についてでした。
最後までお読みいただき、ありがとうございました。