58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
import platform
|
|
import os
|
|
import psutil
|
|
import time as t
|
|
from datetime import datetime
|
|
import collections
|
|
|
|
# Defining functions to get disk stats
|
|
if hasattr(os, 'statvfs'): # POSIX (UNIX)
|
|
def disk_usage(path):
|
|
st = os.statvfs(path)
|
|
free = st.f_bavail * st.f_frsize
|
|
total = st.f_blocks * st.f_frsize
|
|
used = (st.f_blocks - st.f_bfree) * st.f_frsize
|
|
return total, used, free
|
|
|
|
elif os.name == 'nt': # Windows
|
|
import ctypes
|
|
import sys
|
|
|
|
def disk_usage(path):
|
|
_, total, free = ctypes.c_ulonglong(), ctypes.c_ulonglong(), \
|
|
ctypes.c_ulonglong()
|
|
if sys.version_info >= (3,) or isinstance(path, unicode):
|
|
fun = ctypes.windll.kernel32.GetDiskFreeSpaceExW
|
|
else:
|
|
fun = ctypes.windll.kernel32.GetDiskFreeSpaceExA
|
|
ret = fun(path, ctypes.byref(_), ctypes.byref(total), ctypes.byref(free))
|
|
if ret == 0:
|
|
raise ctypes.WinError()
|
|
used = total.value - free.value
|
|
return total.value, used, free.value
|
|
else:
|
|
raise NotImplementedError("platform not supported")
|
|
|
|
# Start of actual program
|
|
OS = "" + platform.uname()[0] + " " + platform.uname()[2]
|
|
name = platform.uname()[1]
|
|
print("Operating System:", OS)
|
|
print("Computer Name:", name)
|
|
|
|
|
|
print("Time\t\tCPU Usage\tRAM Usage\tDisk Usage")
|
|
while(True):
|
|
diskTotal = 0
|
|
diskUsed = 0
|
|
if(hasattr(os, 'statvfs')):
|
|
diskTotal, diskUsage, _ = disk_usage('/')
|
|
|
|
elif(os.name == 'nt'):
|
|
diskTotal, diskUsage, _ = str(disk_usage('C:\\'))
|
|
|
|
time = datetime.now().strftime('%H:%M:%S')
|
|
diskPercent = round((diskUsage/diskTotal) * 100, 3)
|
|
ramPercentage = psutil.virtual_memory()[2]
|
|
print(time + "\t" + str(psutil.cpu_percent()) + "%\t\t" + str(ramPercentage) + "%\t\t" + str(diskPercent) + "%")
|
|
t.sleep(5)
|