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、OSX、FreeBSD和SunSolaris等操作系统.
如果安装了Anaconda,psutil就可以使用,当然也可使用pip安装,使用前先要导包:
importpsutil
主要方法简介
psutil.disk_partitions()返回是一个磁盘分区信息,包括(device,mountpoint,fstype,opts);
psutil.disk_usage()返回磁盘使用情况:
disk=psutil.disk_partitions() foriindisk: print("磁盘:%s分区格式:%s"%(i.device,i.fstype))#盘符分区格式 disk_use=psutil.disk_usage(i.device) print("使用了:%.1fGB,空闲:%.1fGB,总共:%.1fGB,使用率%.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.8GB,空闲:48.2GB,总共:83.0GB,使用率41.9%,
磁盘:D:\ 分区格式:NTFS
使用了:110.5GB,空闲:89.2GB,总共:199.7GB,使用率55.4%,
磁盘:E:\ 分区格式:NTFS
使用了:100.1GB,空闲:95.2GB,总共:195.3GB,使用率51.3%,
磁盘:F:\ 分区格式:NTFS
使用了:120.6GB,空闲:64.4GB,总共:184.9GB,使用率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),'VMwareNetworkAdapterVMnet1':snetio(bytes_sent=597,bytes_recv=13,packets_sent=596,packets_recv=13,errin=0,errout=0,dropin=0,dropout=0),'VMwareNetworkAdapterVMnet8':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),'LoopbackPseudo-Interface1':snetio(bytes_sent=0,bytes_recv=0,packets_sent=0,packets_recv=0,errin=0,errout=0,dropin=0,dropout=0),'TeredoTunnelingPseudo-Interface':snetio(bytes_sent=13724,bytes_recv=760,packets_sent=102,packets_recv=5,errin=0,errout=0,dropin=0,dropout=0)}
现在你就可以愉快的监控宽带或WLAN的上传和下载速度了,代码如下:
importpsutil importtime defnet_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:%.1fkb/s.'%((send2-send1)/1024.0),'download:%.1fkb/s.'%((recv2-recv1)/1024.0) whileTrue: s1=net_state()[0] s2=net_state()[1] print('当前上传和下载速度为:') print(s1) print(s2) print('---------------------')
如果你不想每次都运行这脚本,可以使用pyinstaller打包,教程可以参考前面的文章。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。