Python3获取当前磁盘可用空间

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命令查看到的结果一致
Python3获取当前磁盘可用空间_第1张图片
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

你可能感兴趣的:(Linux,树莓派)