1. 代码
import subprocess
cmd = "hostname -I"
print subprocess.check_output(cmd, shell = True)
结果:
pi $ python stats.py
169.254.X.X 192.168.X.X
2. 说明
hostname 命令
可以获取主机名及IP。
pi $ hostname
raspberrypi
pi $ hostname -I
169.254.X.X 192.168.X.X
subprocess 模块
subprocess 是 Python 2.4 中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码。
3. 备注
想法来自“树莓派实验室”的《在树莓派上使用 SSD1306 OLED 屏幕》。
在 OLED 上显示系统状态用到了 Adafruit-SSD1306 库的一个例子 stats.py (github链接:https://github.com/adafruit/Adafruit_Python_SSD1306/blob/master/examples/stats.py)。
其中代码:
cmd = "hostname -I | cut -d\' \' -f1"
IP = subprocess.check_output(cmd, shell = True )
cmd = "top -bn1 | grep load | awk '{printf \"CPU Load: %.2f\", $(NF-2)}'"
CPU = subprocess.check_output(cmd, shell = True )
cmd = "free -m | awk 'NR==2{printf \"Mem: %s/%sMB %.2f%%\", $3,$2,$3*100/$2 }'"
MemUsage = subprocess.check_output(cmd, shell = True )
cmd = "df -h | awk '$NF==\"/\"{printf \"Disk: %d/%dGB %s\", $3,$2,$5}'"
Disk = subprocess.check_output(cmd, shell = True )
可以获取各种系统信息。