使用 Python 让树莓派显示主机信息
让树莓派显示 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'
下一篇:26fe.cn “老爹的铁铺” 上线记
博客很漂亮 希望添加一个高亮功能 这样代码的阅读体验会更好
代码高亮的不知道为什么又给挂了。。。谢谢:)