使用 Python 让树莓派显示主机信息

共码了1287个字
文内使用到的标签:

让树莓派显示 IP、CPU/GPU 温度、内存硬盘使用率、网速

以下代码在python 3.5中测试

  • 可以将subprocess 换成commands
import subprocess
import time
import socket
import psutil  # 监控数据读取
from time import sleep  # 控制刷新时间
def sleeptime(hour,min,sec):
    return hour*3600 + min*60 + sec;
second = sleeptime(0,0,10);
def get_ip():#获取ip地址
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(('8.8.8.8', 80))
        ip = s.getsockname()[0]
    finally:
        s.close()
    return ip
def get_cpu_temp():#CPU温度
    file = open("/sys/class/thermal/thermal_zone0/temp")
    temp = float(file.read()) / 1000
    file.close();
    return temp
def get_gpu_temp(): #GPU温度
    temp = subprocess.getoutput('/opt/vc/bin/vcgencmd measure_temp').replace('temp=','').replace('\'C','')
    return float(temp)
def cpu(): #CPU使用率
    cpu_p = psutil.cpu_percent(interval=1, percpu=True)  # 读取CPU使用率
    return cpu_p
def disk(): #硬盘使用情况
    disk_u = psutil.disk_usage("/").percent
    disk_u = str(disk_u)+"%"
    return disk_u
def mem(): #内存使用情况
    mem_p = psutil.virtual_memory().percent  # 读取内存使用率
    #mem=mem_u / mem_t
    return mem_p
def net_info(): #网络使用情况
    net_in = psutil.net_io_counters().bytes_recv/1024/1024
    net_in = round(net_in, 2)
    net_out = psutil.net_io_counters().bytes_sent/1024/1024
    net_out = round(net_out, 2)
    net = str(net_in)+"MB / "+str(net_out)+"MB"
    return net
def net_speed(): #网速
    s1 = psutil.net_io_counters().bytes_recv
    time.sleep(1)
    s2 = psutil.net_io_counters().bytes_recv
    result = s2 - s1
    #除法结果保留两位小数
    return str('%.2f'%(result / 1024)) + 'kb/s'
Prev:
Next:

《“使用 Python 让树莓派显示主机信息”》 有 2 条评论

  1. xiantang说道:

    博客很漂亮 希望添加一个高亮功能 这样代码的阅读体验会更好

回复 xiantang 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注