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命令查看到的結果一致
在這裏插入圖片描述
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章