python虚拟变量教程(Python中psutil的介绍与用法)
python虚拟变量教程
Python中psutil的介绍与用法psutil简介
psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括cpu、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的linux、windows、os x、freebsd和sun solaris等操作系统.
如果安装了anaconda,psutil就可以使用,当然也可使用pip安装,使用前先要导包:
|
import psutil |
主要方法简介
psutil.disk_partitions()
返回是一个磁盘分区信息,包括(device, mountpoint, fstype, opts);
psutil.disk_usage()
返回磁盘使用情况:
|
disk = psutil.disk_partitions() for i in disk: print ( "磁盘:%s 分区格式:%s" % (i.device, i.fstype)) # 盘符 分区格式 disk_use = psutil.disk_usage(i.device) print ( "使用了:%.1f gb,空闲:%.1f gb,总共:%.1f gb,使用率%.1f%%," % ( disk_use.used / 1024 / 1024 / 1024 , disk_use.free / 1024 / 1024 / 1024 , disk_use.total / 1024 / 1024 / 1024 , disk_use.percent)) |
磁盘:c:\ 分区格式:ntfs
使用了:34.8 gb,空闲:48.2gb,总共:83.0 gb,使用率41.9%,
磁盘:d:\ 分区格式:ntfs
使用了:110.5 gb,空闲:89.2gb,总共:199.7 gb,使用率55.4%,
磁盘:e:\ 分区格式:ntfs
使用了:100.1 gb,空闲:95.2gb,总共:195.3 gb,使用率51.3%,
磁盘:f:\ 分区格式:ntfs
使用了:120.6 gb,空闲:64.4gb,总共:184.9 gb,使用率65.2%,
psutil.cpu_percent() cpu的利用率
psutil.virtual_memory()内存情况
|
memory = psutil.virtual_memory() # memory.used 使用的 # memory.total 总共 ab = float (memory.used) / float (memory.total) * 100 print ( "内存使用率为:%.2f%%" % ab) |
psutil.net_io_counters() 网络使用情况,可以监控电脑每一个网口的上传,下载等信息;每个电脑由于网口名字不同,返回的信息不太一样。用下面的代码可以先打印出来你电脑的网口信息:
|
print (psutil.net_io_counters(pernic = true)) |
你会得到类型下面的信息:
|
{ '以太网' : snetio(bytes_sent = 0 , bytes_recv = 0 , packets_sent = 0 , packets_recv = 0 , errin = 0 , errout = 0 , dropin = 0 , dropout = 0 ), '本地连接* 2' : snetio(bytes_sent = 0 , bytes_recv = 0 , packets_sent = 0 , packets_recv = 0 , errin = 0 , errout = 0 , dropin = 0 , dropout = 0 ), 'vmware network adapter vmnet1' : snetio(bytes_sent = 597 , bytes_recv = 13 , packets_sent = 596 , packets_recv = 13 , errin = 0 , errout = 0 , dropin = 0 , dropout = 0 ), 'vmware network adapter vmnet8' : snetio(bytes_sent = 1919 , bytes_recv = 13 , packets_sent = 1919 , packets_recv = 13 , errin = 0 , errout = 0 , dropin = 0 , dropout = 0 ), 'wlan' : snetio(bytes_sent = 3993804 , bytes_recv = 76316885 , packets_sent = 35011 , packets_recv = 63467 , errin = 0 , errout = 0 , dropin = 0 , dropout = 0 ), '蓝牙网络连接' : snetio(bytes_sent = 0 , bytes_recv = 0 , packets_sent = 0 , packets_recv = 0 , errin = 0 , errout = 0 , dropin = 0 , dropout = 0 ), 'loopback pseudo-interface 1' : snetio(bytes_sent = 0 , bytes_recv = 0 , packets_sent = 0 , packets_recv = 0 , errin = 0 , errout = 0 , dropin = 0 , dropout = 0 ), 'teredo tunneling pseudo-interface' : snetio(bytes_sent = 13724 , bytes_recv = 760 , packets_sent = 102 , packets_recv = 5 , errin = 0 , errout = 0 , dropin = 0 , dropout = 0 )} |
现在你就可以愉快的监控宽带或wlan的上传和下载速度了,代码如下:
|
import psutil import time def net_state(): recv1 = psutil.net_io_counters(pernic = true)[ 'wlan' ][ 1 ] #接收数据 send1 = psutil.net_io_counters(pernic = true)[ 'wlan' ][ 0 ] #上传数据 time.sleep( 1 ) # 每隔1s监听端口接收数据 recv2 = psutil.net_io_counters(pernic = true)[ 'wlan' ][ 1 ] send2 = psutil.net_io_counters(pernic = true)[ 'wlan' ][ 0 ] # 上传数据 return 'upload:%.1f kb/s.' % ((send2 - send1) / 1024.0 ), 'download:%.1f kb/s.' % ((recv2 - recv1) / 1024.0 ) while true: s1 = net_state()[ 0 ] s2 = net_state()[ 1 ] print ( '当前上传和下载速度为:' ) print (s1) print (s2) print ( '---------------------' ) |
如果你不想每次都运行这脚本,可以使用,教程可以参考前面的文章。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。
原文链接:https://juejin.im/post/5cc95ee0e51d456e5b66ae04
- Ext.slider控件的用法
- pythondocx安装教程(Python docx库用法示例分析)
- SQL Union和Union All的用法和区别
- 详解SqlServer数据库中Substring函数的用法(详解SqlServer数据库中Substring函数的用法)
- asp.net中split的用法
- 如何判断数据是json还是字符串(JSON.stringify的多种用法总结)
- python3循环使用教程(Python3.4学习笔记之 idle 清屏扩展插件用法分析)
- JS匿名函数的用法
- mysql完整整理(Mysql隔离性之Read View的用法说明)
- JQuery中extend的用法
- mysql的decimal类型(MySQL数据类型DECIMAL用法详解)
- laravel多用户认证实例(Laravel框架验证码类用法实例分析)
- ASP.NET中lock 的用法
- sql function函数的用法(SQl Function 创建函数实例介绍)
- JavaScript instanceof 的用法
- django session验证(Django框架验证码用法实例分析)
- 大事件 合肥四中火了(大事件合肥四中火了)
- 翼龙贷组织出借人调研 感受鄱阳 借 来的致富路(翼龙贷组织出借人调研)
- 2023新国风戏曲教育寒假集训班汇报演出《戏娃闹元宵》图文报道(2023新国风戏曲教育寒假集训班汇报演出戏娃闹元宵图文报道)
- 九儿《狐踪谍影》出演热血女特警,戏份杀青受关注(九儿狐踪谍影出演热血女特警)
- 红色代表什么(红色代表什么寓意)
- 蓝天代表什么(蓝天代表什么生肖)
热门推荐
- dedecms怎么设置翻页(DEDECMS中获取无限栏目子分类的方法)
- python装饰器初学者教程(Python3.5装饰器原理及应用实例详解)
- python关于微信的模块(python基于itchat模块实现微信防撤回)
- springboot docker 部署(详解docker部署SpringBoot及替换jar包的方法)
- dedecms搜索功能怎么设置详细(取消dedecms 留言簿的验证码的方法)
- python数据分析pandas教程(11个Python Pandas小技巧让你的工作更高效附代码实例)
- django开发平台运用的技术(django的ORM模型的实现原理)
- php+mysql源码部署教程(在WIN主机IIS上支持PHP和MySQL实现方法)
- Thread.Sleep与Task.Delay的区别
- mysql数据库事务处理(MySQL数据库事务与锁深入分析)