Python查看计算机系统信息,CPU,内存,磁盘及网络信息

Python查看计算机系统信息,CPU,内存,磁盘及网络信息

import sys
import io
# pip install psutil
import psutil
import datetime
import time
import platform
import functools
print = functools.partial(print, flush=True)

def monitor(count, timeout=10, line_to_list=False, ignore_error=False):
    print("执行第{}次".center(50,'*').format(count))
    try:
        # CPU的逻辑核数
        cpu_count = psutil.cpu_count()
        # cpu的使用率
        cup_per = psutil.cpu_percent(interval=0.5) # 0.5刷新频率
        print("cpu的逻辑核数为{},cpu的平均使用率为{}".format(cpu_count,cup_per))
        # 内存信息
        memory_info = psutil.virtual_memory()
        # 总内存
        memory_total = memory_info.total / 1024 / 1024
        # 内存使用率
        memory_per = memory_info.percent
        print("总内存大小为{}M,内存的使用率为{}".format(memory_total,memory_per))
        # 硬盘信息
        disk_info = psutil.disk_usage("/") # 根目录磁盘信息
        print(disk_info)
        # 根目录大小
        disk_total = disk_info.total
        # 根目录使用情况
        disk_per = float(disk_info.used / disk_total * 100 )
        print("根目录大小为{}M,根目录使用率为{}".format(disk_total / 1024 / 1024,round(disk_per,2)))
        # 网络使用情况
        net = psutil.net_io_counters()
        #print(net)
        # 收取数据
        net_recv = float( net.bytes_recv / 1024 /1024)
        # 发送数据
        net_sent = float(net.bytes_sent /1024 /1024)
        print("网络收取{}M的数据,发送{}M的数据".format(round(net_recv,2),round(net_sent,2)))
        # 获取当前系统时间
        current_time = datetime.datetime.now().strftime("%F %T") # %F年月日 %T时分秒
        print("当前时间是:{}".format(current_time))
        return True, str(success)
    except Exception as e:
        return False, str(e)

def showEcsInfo():
    print("操作系统及版本信息:{}".format(platform.platform()))
    print("获取系统版本号:{}".format(platform.version()))
    print("获取系统名称:{}".format(platform.system()))
    print("系统位数:{}".format(platform.architecture()))
    print("计算机类型:{}".format(platform.machine()))
    print("计算机名称:{}".format(platform.node()))
    print("处理器类型:{}".format(platform.processor()))
    print("计算机相关信息:{}".format(platform.uname()))


if __name__ == '__main__':
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
    showEcsInfo()
    start = time.time()
    end = time.time()
    count = 0
    while end - start <= 10:
        count += 1
        end = time.time()
        success ,output =  monitor(count)
        time.sleep(2)

猜你喜欢

转载自blog.csdn.net/Wemesun/article/details/129375940