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