From 94270a67f4b8b466f0be64da5007df6510835e2f Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Tue, 31 Jan 2017 21:42:54 +0100 Subject: [PATCH] Added better comments and cleaned up by making seperate converting functions and some small error handling. --- v1/diskusage.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/v1/diskusage.py b/v1/diskusage.py index 337919f..e7d1005 100755 --- a/v1/diskusage.py +++ b/v1/diskusage.py @@ -3,10 +3,14 @@ # @Author: KevinMidboe # @Date: 2017-01-28 10:54:06 # @Last Modified by: KevinMidboe -# @Last Modified time: 2017-01-28 13:23:07 +# @Last Modified time: 2017-01-31 21:40:34 + +# f_avail = free blocks avail to non sudo +# frsize = fundamental file sys byte size +# f_blocks = total number of blocks in the filesystem from os import statvfs - + def sizeof(num, suffix='B'): for unit in ['','K','M','G','T','P','E','Z']: if abs(num) < 1024.0: @@ -14,13 +18,18 @@ def sizeof(num, suffix='B'): num /= 1024.0 return "%.1f%s%s" % (num, 'Y', suffix) +# diskUsage uses statvfs to calculate disk size and availability for given disk def diskUsage(path='/'): - s = statvfs(path) - byteLeft = s.f_bavail * s.f_frsize - byteTotal = s.f_blocks * s.f_frsize - byteUsed = byteTotal-byteLeft + try: + s = statvfs(path) + byteLeft = s.f_bavail * s.f_frsize + byteTotal = s.f_blocks * s.f_frsize + byteUsed = byteTotal-byteLeft - return { 'left':sizeof(byteLeft), 'used':sizeof(byteUsed), 'total':sizeof(byteTotal) } + return { 'left':sizeof(byteLeft), 'used':sizeof(byteUsed), 'total':sizeof(byteTotal) } + + except FileNotFoundError: + return None if __name__=="__main__": n = diskUsage('/media/hdd1')