os.statvfs
方法只適用於Linux系統
開發環境
- RaspberryPi 4B
- Python 3.7.3
獲取/
根目錄可用空間
import os
# 獲取/目錄的磁盤信息
info = os.statvfs('/')
free_size = info.f_bsize * info.f_bavail / 1024 / 1024
print(f'可用磁盤空間:{free_size}MB')
與直接使用系統df
命令查看到的結果一致
f_bsize
是當前文件系統中數據塊的大小,單位是B
(字節)
f_bavail
是當前可用的數據塊數量(單位應該是個吧)
這兩個相乘得到的就是當前可用磁盤空間的大小(單位B
),然後再除兩遍1024就得到了單位是MB
的結果
In [6]: info.f_bsize
Out[6]: 4096
In [7]: info.f_bavail
Out[7]: 6753028
In [8]: info.f_bsize * info.f_bavail
Out[8]: 27660402688 # 單位B
In [9]: info.f_bsize * info.f_bavail / 1024
Out[9]: 27012112.0 # 單位KB
In [10]: info.f_bsize * info.f_bavail / 1024 / 1024
Out[10]: 26379.015625 # 單位MB
獲取/
根目錄容量空間
# 接上面的代碼
total_size = info.f_blocks * info.f_bsize / 1024 / 1024
f_blocks
表示當前路徑下一共有多少個數據塊
計算當前空間使用率
used_percent = round(free_size / total_size * 100, 2)
# 輸出結果:88.88