Python psutil模块简单使用实例

yipeiwu_com5年前Python基础

安装很简单

复制代码 代码如下:

pip install psutil

官网地址为:
https://pythonhosted.org/psutil/ (文档上有详细的api)
github地址为:
https://github.com/giampaolo/psutil/

psutil比较好的地方,一个是跨平台,不需要切换平台的时候在重新开放了,另外一个好处的工具集中CPU, memory, disks, network,这些信息都可以获得到。
可以用来做系统监控,性能分析,进程管理。 可以支持的系统有Linux, Windows, OSX, FreeBSD and Sun Solaris,32和64位系统都支持,同时支持pyhton2.4到3.4。

为了看看跨平台的好不好用,在windows实验下

复制代码 代码如下:

#-*- coding: utf-8 -*- 
#python2.7x 
#author: orangleliu@gmail.com 2014-12-12 
#psutiltest.py 
'''''
照着教程简单学习下psutil的使用,windows下试试
''' 
import psutil 
import datetime 
 
#查看cpu的信息 
print u"CPU 个数 %s"%psutil.cpu_count() 
print u"物理CPU个数 %s"%psutil.cpu_count(logical=False) 
print u"CPU uptimes" 
print psutil.cpu_times() 
print "" 
 
#查看内存信息 
print u"系统总内存 %s M"%(psutil.TOTAL_PHYMEM/1024/1024) 
print u"系统可用内存 %s M"%(psutil.avail_phymem()/1024/1024) 
mem_rate = int(psutil.avail_phymem())/float(psutil.TOTAL_PHYMEM) 
print u"系统内存使用率 %s %%"%int(mem_rate*100) 
 
#系统启动时间 
print u"系统启动时间 %s"%datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S") 
 
#系统用户 
users_count = len(psutil.users()) 
users_list = ",".join([ u.name for u in psutil.users()]) 
print u"当前有%s个用户,分别是%s"%(users_count, users_list) 
 
#网卡,可以得到网卡属性,连接数,当前流量等信息 
net = psutil.net_io_counters() 
bytes_sent = '{0:.2f} kb'.format(net.bytes_recv / 1024) 
bytes_rcvd = '{0:.2f} kb'.format(net.bytes_sent / 1024) 
print u"网卡接收流量 %s 网卡发送流量 %s"%(bytes_rcvd, bytes_sent) 
 
#进程  进程的各种详细参数 
#磁盘 磁盘的使用量等等 

从这个简单的案例中可见psuti的强大,在window上也如此好用,做系统数据采集非常合适。
如果需要使用请详细参考官方文档。
gist上也有些代码片段可以参考https://gist.github.com/search?q=psutil

相关文章

浅析Windows 嵌入python解释器的过程

这次主要记录在windows下嵌入 python 解释器的过程,程序没有多少,主要是头文件与库文件的提取。 程序平台:windows10 64 bit、 Qt 5.5.1  M...

浅析Python语言自带的数据结构有哪些

Python作为一种脚本语言,其要求强制缩进,使其易读、美观,它的数据类型可以实现自动转换,而不需要像C、Java那样给变量定义数据类型,使其编写非常方便简单,所以广受大家的欢迎。 现如...

python按修改时间顺序排列文件的实例代码

python按修改时间顺序排列文件,具体代码如下所示: import os def sort_file_by_time(file_path): files = os.listdi...

python 通过logging写入日志到文件和控制台的实例

如下所示: import logging # 创建一个logger logger = logging.getLogger('mylogger') logger.setLev...

Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例

Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例

本文实例讲述了python从任意长度的可迭代对象中分解元素操作。分享给大家供大家参考,具体如下: 从某个可迭代对象中分解出N个元素,但是可迭代对象的长度可能超过N,会出现“分解值过多”的...