使用Python3获取系统信息
来源:互联网 发布:云数据库安全防护 编辑:程序博客网 时间:2024/06/03 09:26
获取CPU温度
读取/sys/class/thermal/thermal_zone0/temp
文件中的内容,除以1000后,即可获得CPU的温度,单位为摄氏度。
适用环境:
- Linux
- Android + QPython3
代码示例:
fp = open('/sys/class/thermal/thermal_zone0/temp', 'r');result_c = fp.readline();fp.close();cpu_temp = int(float(result_c) / 1000.0); #获取CPU温度
获取Nvidia GPU温度
运行nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits
命令,该命令的标准输出即为GPU的温度,单位为摄氏度。
适用环境:
- Windows(需要安装Nvidia官方驱动)
- Linux(需要安装Nvidia官方驱动)
代码示例:
import subprocess;p = subprocess.Popen(['nvidia-smi', '--query-gpu=temperature.gpu', '--format=csv,noheader,nounits'], stdout=subprocess.PIPE);gpu_temp = int(p.communicate()[0]); #获取GPU温度
获取Android手机电池电量
使用SL4A的BatteryManagerFacade API获取手机电池电量。
适用环境:
- Android + QPython3
代码示例:
import android;droid = android.Android();droid.batteryStartMonitoring();battery_level = droid.batteryGetLevel()[1]; #获取Android手机电池电量droid.batteryStopMonitoring();
获取总CPU使用率
通过分析/proc/stat
文件中的内容获取CPU使用率。
适用环境:
- Linux
- Android + QPython3
代码示例:
import time;def cpu_usage(sample_interval): with open('/proc/stat', 'r') as fp: info0 = fp.readline(); time.sleep(sample_interval); with open('/proc/stat', 'r') as fp: info1 = fp.readline(); info0 = [int(n) for n in info0.split()[1:]]; info1 = [int(n) for n in info1.split()[1:]]; return float(sum(info1[0:3]) - sum(info0[0:3])) / float(sum(info1) - sum(info0));# 调用cpu_usage()函数print(cpu_usage(0.01));
获取每个CPU的使用率
通过分析/proc/stat
文件中的内容获取CPU数量,以及每个CPU的使用率。
适用环境:
- Linux
- Android + QPython3
代码示例:
import time, re;__re_cpu = re.compile(r'cpu\d+');def cpu_usage_each(sample_interval): with open('/proc/stat', 'r') as fp: lines0 = fp.readlines(); time.sleep(sample_interval); with open('/proc/stat', 'r') as fp: lines1 = fp.readlines(); lines0 = [l.split() for l in lines0]; lines1 = [l.split() for l in lines1]; info0, info1, result = [], [], []; for l in lines0: if None != __re_cpu.match(l[0]): info0.append([int(n) for n in l[1:]]); for l in lines1: if None != __re_cpu.match(l[0]): info1.append([int(n) for n in l[1:]]); for i in range(len(info0)): total = sum(info1[i]) - sum(info0[i]); if 0 == total: result.append(0.0); else: result.append(float(sum(info1[i][0:3]) - sum(info0[i][0:3])) / float(total)); return result;# 调用cpu_usage_each()函数print(cpu_usage_each(0.01));
获取内存使用率
通过分析/proc/meminfo
文件中的内容获取内存使用率。
适用环境:
- Linux
- Android + QPython3
代码示例:
import re;__re_mem_total = re.compile(r'MemTotal:\s*(\d+)');__re_mem_free = re.compile(r'MemFree:\s*(\d+)');__re_mem_buffers = re.compile(r'Buffers:\s*(\d+)');__re_mem_cache = re.compile(r'Cached:\s*(\d+)');def mem_usage(): with open('/proc/meminfo', 'r') as fp: meminfo = fp.readlines(); total, avail = 1, 0; for line in meminfo: m_total = __re_mem_total.match(line); m_free = __re_mem_free.match(line); m_buffers = __re_mem_buffers.match(line); m_cache = __re_mem_cache.match(line); if None != m_total: total = int(m_total.groups()[0]); elif None != m_free: avail += int(m_free.groups()[0]); elif None != m_buffers: avail += int(m_buffers.groups()[0]); elif None != m_cache: avail += int(m_cache.groups()[0]); return float(total-avail)/float(total);# 调用mem_usage()函数print(mem_usage());
获取开机时间
通过分析/proc/uptime
文件中的内容获取从开机到现在的秒数。
适用环境:
- Linux
- Android + QPython3
代码示例:
from datetime import datetime, timedelta;def boot_time(): with open('/proc/uptime', 'r') as fp: uptime = fp.readline(); uptime = float(uptime.split()[0]); return (datetime.now() - timedelta(0, uptime));# 调用boot_time()函数print(boot_time().strftime('%Y-%m-%dT%H:%M:%S'));
使用psutil
获取CPU使用率、内存使用率、开机时间
使用psutil
提供的API获取CPU使用率(单位为百分比)、内存使用率(单位为百分比)、开机时间。
需要另外安装psutil
模块。
适用环境:
- Windows
- Linux
代码示例(获取CPU使用率):
import psutil;from datetime import datetime;#获取总CPU使用率cpu_usage = psutil.cpu_percent(0.1);#获取内存使用率meminfo = psutil.virtual_memory();mem_usage = (meminfo.total - meminfo.available) / meminfo.total * 100;#获取开机时间boot_time = datetime.fromtimestamp(psutil.boot_time()).strftime('%Y-%m-%dT%H:%M:%S');
0 0
- 使用Python3获取系统信息
- 树莓派使用Python3获取天气信息
- python3获取天气信息
- 使用WMI获取系统信息
- 使用WMI获取系统信息
- 使用Delphi获取系统信息
- 使用Environment 来获取系统的信息
- 如何使用sigar包获取系统信息
- 使用 Python 获取 Linux 系统信息
- 使用 Python 获取 Linux 系统信息
- 使用 Python 获取 Linux 系统信息
- 使用 Python 获取 Linux 系统信息
- linux系统获取硬盘使用信息
- 使用系统ContentProvider获取联系人信息
- 使用 Python 获取 Linux 系统信息
- python中系统信息获取psutil使用
- Sigar介绍与使用(获取系统信息)
- 使用python获取系统网络信息
- 笔试随笔
- logback 常用配置详解(一)<configuration> and <logger>
- Spring MVC常用注解
- SQLSEVER时间函数
- android 控件 NestedScrollView
- 使用Python3获取系统信息
- iOS7、8如何present模态半透明控制器探讨
- swift3.0 gcd 变化
- Win7 cd /d %~dp0
- PEP8 Python编码规范
- SSH三大框架的工作原理及流程
- WebService注解汇总
- 别用此刻的眼界,限制自己对未来的想象
- 使用python对redis备份zset