python获取电脑状态
注意
素材说明: python获取电脑状态目前只在windows下验证过
注意
在windows下建议使用vscode运行,如果无法通讯时,建议使用管理员权限打开vscode再运行,由于pycharm需要配置虚拟环境,不建议在pycharm下运行,可能会导致无法通讯。
此例程属于python代码,仅提供参考,淘晶驰不提供python代码的技术支持。
python获取电脑状态代码
import time
import psutil
from cushy_serial import CushySerial
time.sleep(1)
# 获取CPU状态
def getCPUstate(interval=1):
return (" CPU: " + str(psutil.cpu_percent(interval)) + "%")
# 获取内存状态
def getMemorystate():
phymem = psutil.virtual_memory()
line = "Memory: %5s%% %6s/%s" % (
phymem.percent,
str(int(phymem.used / 1024 / 1024)) + "M",
str(int(phymem.total / 1024 / 1024)) + "M"
)
return line
# 将数据显示为方便查看的方式
def bytes2human(n):
symbols = ('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
prefix = {}
for i, s in enumerate(symbols):
prefix[s] = 1 << (i + 1) * 10
for s in reversed(symbols):
if n >= prefix[s]:
value = float(n) / prefix[s]
return '%.2f %s' % (value, s)
return '%.2f B' % (n)
def poll(interval):
"""Retrieve raw stats within an interval window."""
tot_before = psutil.net_io_counters()
pnic_before = psutil.net_io_counters(pernic=True)
# sleep some time
time.sleep(interval)
tot_after = psutil.net_io_counters()
pnic_after = psutil.net_io_counters(pernic=True)
# get cpu state
cpu_state = getCPUstate(interval)
# get memory
memory_state = getMemorystate()
return (tot_before, tot_after, pnic_before, pnic_after, cpu_state, memory_state)
def refresh_window(tot_before, tot_after, pnic_before, pnic_after, cpu_state, memory_state):
# 发送CPU数据
str = "t0.txt=\"" + time.asctime() + " | " + cpu_state + " | " + memory_state + "\""
serial.send(str.encode("GB2312"))
serial.send(bytes.fromhex('ff ff ff'))
# 获取所有网卡名称
nic_names = pnic_after.keys()
for name in nic_names:
# 有线一般是"以太网",无线则是"WLAN",具体请查看"控制面板\网络和 Internet\网络连接"
if name == "以太网":
stats_before = pnic_before[name]
stats_after = pnic_after[name]
templ = "%-15s %15s %15s"
str = "t1.txt=\"上传数据总量" + bytes2human(stats_after.bytes_sent) + " 上传速度:" + bytes2human(stats_after.bytes_sent - stats_before.bytes_sent) + '/s\"'
serial.send(str.encode("GB2312"))
serial.send(bytes.fromhex('ff ff ff'))
str = "t2.txt=\"下载数据总量" + bytes2human(stats_after.bytes_recv) + " 下载速度:" + bytes2human(stats_after.bytes_recv - stats_before.bytes_recv) + '/s\"'
serial.send(str.encode("GB2312"))
serial.send(bytes.fromhex('ff ff ff'))
try:
interval = 0
portx = "COM4"
bauds = 115200
timex = 5
serial = CushySerial(portx, bauds)
while 1:
args = poll(interval)
refresh_window(*args)
interval = 1
except (KeyboardInterrupt, SystemExit):
pass
《python获取电脑状态》下载
下载链接:资源合集汇总