您的位置:首页 > 脚本大全 > > 正文

python虚拟变量教程(Python中psutil的介绍与用法)

更多 时间:2021-10-09 00:38:23 类别: 浏览量:2651

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安装,使用前先要导包:

  • ?
  • 1
  • import psutil
  • 主要方法简介

    psutil.disk_partitions()返回是一个磁盘分区信息,包括(device, mountpoint, fstype, opts);

    psutil.disk_usage()返回磁盘使用情况:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 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()内存情况

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • memory = psutil.virtual_memory()
  • # memory.used 使用的
  • # memory.total 总共
  • ab = float(memory.used) / float(memory.total) * 100
  • print("内存使用率为:%.2f%%" % ab)
  • psutil.net_io_counters() 网络使用情况,可以监控电脑每一个网口的上传,下载等信息;每个电脑由于网口名字不同,返回的信息不太一样。用下面的代码可以先打印出来你电脑的网口信息:

  • ?
  • 1
  • print(psutil.net_io_counters(pernic=true))
  • 你会得到类型下面的信息:

  • ?
  • 1
  • {'以太网': 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的上传和下载速度了,代码如下:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 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

    本文地址:http://www.studyofnet.com/news/2570.html

    标签:用法 Python psutil