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
- php生命周期表(PHP中md5函数的用法讲解)
- css3 图片边框(css3图片边框border-image的用法)
- Ext.DomHelper用法
- pythonlambda是什么函数(Python之lambda匿名函数及map和filter的用法)
- JavaScript instanceof 的用法
- SQL Server 表变量的用法
- css3中基本选择符(CSS3 clip-path 用法介绍详解)
- C#中SortedList的用法
- window.open的用法
- python中迭代器的作用(Python3.5迭代器与生成器用法实例分析)
- php入门基本笔记(PHP之认识二关于Traits的用法详解)
- vue怎么实现倒计时(Vue计时器的用法详解)
- mysql数据类型及用法(MySQL数据库重命名的快速且安全方法3种)
- php去水印方法(PHP开发的文字水印,缩略图,图片水印实现类与用法示例)
- 移动端字号规范(吃透移动端 1px的具体用法)
- pythonpandas数据类型(Python3.5 Pandas模块之Series用法实例分析)
- 爱情能当饭吃吗(爱情能当饭吃吗说说)
- 白T恤穿法(白t恤)
- 你怎么忘了是说先爱我(你怎么忘了如何爱我)
- 做技术难吗(技术难不难)
- 林心如是谁(林心如是谁演的)
- 泰国安全吗(泰国安全吗2023)
热门推荐
- C#中SortedList的用法
- css选择器一般写多少(深入理解CSS选择器优先级)
- idea关联mysql数据库(IDEA无法连接mysql数据库的6种解决方法大全)
- mysql存储引擎的创建与修改(关于MySQL Memory存储引擎的相关知识)
- docker进入容器内部后的命令(Docker部署Consul配置过程解析)
- dedecms文章点击量(Dedecms文章标题及文章摘要长度修改的方法)
- 阿里云服务器清除密码(阿里云服务器忘记密码怎么办?阿里云ECS密码重置图文教程)
- 怎么创建dhcp服务器(DHCP服务器与Web服务器的搭建教程)
- 织梦网站栏目管理和内容发布(使用DEDE织梦计划任务功能定时更新首页)
- System.Action委托
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9