Python - ディスクのサイズ・使用量・空き容量を取得する

ストレージ(HDD や SSDなど)のサイズ・使用量・空き容量を取得するには、shutilモジュールの disk_usage() メソッドを使用します。

このモジュールはPythonの標準ライブラリに含まれているため、追加のパッケージをインストールする必要はありません。

shutil.disk_usage() の使い方

shutil.disk_usage() メソッドに、取得したいディスクのパスを渡します。

結果は 名前付きタプル(named tuple)で返されます。 このタプルは「total」「used」「free」の3項目が含まれ、total が ディスクのサイズ、used が 使用量、free が 空き容量です。 容量の単位は Byte で、型は int型です。

import shutil

<取得結果> = shutil.disk_usage(<取得したいディスクのパス>)

<ディスクサイズ> = <取得結果>.total
<ディスク使用量> = <取得結果>.used
<ディスク空き容量> = <取得結果>.free

サンプルコード

次のサンプルコードは shutil.disk_usage() を使用し、Cドライブのサイズ を さまざまな単位(バイト、キロバイト、メガバイト、ギガバイト、テラバイト)で表示します。また、ディスクの使用率(使用済みの容量を全体の容量で割ったもの)も計算し、表示します。
import shutil


# Cドライブのディスク容量を取得
resultTuple = shutil.disk_usage('c:')

print('単位 = Byte')
print(f'ディスク容量: {resultTuple.total} Byte')
print(f'使用済み    : {resultTuple.used} Byte')
print(f'使用可能    : {resultTuple.free} Byte')

print('単位 = Kilo Byte')
print(f'ディスク容量: {resultTuple.total / 1024} KByte')
print(f'使用済み    : {resultTuple.used  / 1024} KByte')
print(f'使用可能    : {resultTuple.free  / 1024} KByte')

print('単位 = Mega Byte')
print(f'ディスク容量: {resultTuple.total / 1024**2} MByte')
print(f'使用済み    : {resultTuple.used  / 1024**2} MByte')
print(f'使用可能    : {resultTuple.free  / 1024**2} MByte')

print('単位 = Giga Byte')
print(f'ディスク容量: {resultTuple.total / 1024**3} GByte')
print(f'使用済み    : {resultTuple.used  / 1024**3} GByte')
print(f'使用可能    : {resultTuple.free  / 1024**3} GByte')

print('単位 = Tera Byte')
print(f'ディスク容量: {resultTuple.total / 1024**4} TByte')
print(f'使用済み    : {resultTuple.used  / 1024**4} TByte')
print(f'使用可能    : {resultTuple.free  / 1024**4} TByte')

print('使用率')
print(f'{resultTuple.used / resultTuple.total * 100} %')

参考資料

検証環境