python 收集机器信息(cpu,内存,系统信息, mac地址, 电池用量```)

使用python 3.8运行

import psutil
import platform
import socket
import os
import time
import datetime

def GetTimeStmp():
    return time.mktime(datetime.datetime.now().timetuple())

def GetOSInfo():
    os = platform.system()
    versionInfo = platform.version()
    version = versionInfo.split('.')
    bitInfo = platform.machine()
    bit = 32
    if '64' in bitInfo:
        bit = 64
    elif '86' in bit:
        bit = 32
    return os, version[0], bit

def GetHostName():
    return socket.gethostname()

def GetMachineModel():
    if psutil.WINDOWS:
        import winreg
        key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r'HARDWARE\DESCRIPTION\System\BIOS')
        value, tmp = winreg.QueryValueEx(key, "SystemVersion")
        return value
    else:
        return 'Mac ' + socket.gethostname()

def GetMacAddress():
    wifi_mac = ''
    ehternet_mac = ''
    if psutil.WINDOWS:
        result = os.popen('getmac')
        strRead = result.read()
        lst = strRead.splitlines()
        if len(lst) > 4:
            ehternet_mac = lst[3].split(" ")[0]
            wifi_mac = lst[4].split(" ")[0]
        elif len(lst) > 3:
            ehternet_mac = lst[3].split(" ")[0]
    else:
        for name, info in psutil.net_if_addrs().items():
            if 'en0' in name:
                for addr in info:
                    if 18 == addr.family:
                        wifi_mac = addr.address
            if 'Ethernet' in name:
                for addr in info:
                    if -1 == addr.family:
                        ehternet_mac = addr.address
    return ehternet_mac, wifi_mac

def GetCpuInfo():
    cpu_info = dict()
    cpu_info['name'] = platform.processor()
    cpu_info['count'] = psutil.cpu_count(logical=False)  # cpu核心数
    cpu_info['thread'] = psutil.cpu_count()  # cpu线程数
    cpu_info['frequency'] = psutil.cpu_freq()[2] / 1000  # 频率MHZ
    #cpu_info['usage'] = psutil.cpu_percent()  # cpu使用率
    return cpu_info

def GetCpuPercent():
    return psutil.cpu_percent()

def GetTotalMemory():
    return psutil.virtual_memory().total

def GetBatteryRemaining():
    battery_remaining = ''
    if psutil.sensors_battery():
        battery_remaining = psutil.sensors_battery().percent
    return battery_remaining

def GetProcessRunInfo(process_name: list):
    cpu_percent = 0
    memory_usage = 0
    for process in psutil.process_iter():
        try:
            if process.name() in process_list:
                cpu_percent += process.cpu_percent()
                memory_usage += process.memory_info().rss
        except (psutil.AccessDenied, psutil.ZombieProcess):
            continue

    return cpu_percent, memory_usage
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值