Python获取系统基础信息psutil模块使用

2024-02-05 11:08

本文主要是介绍Python获取系统基础信息psutil模块使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

查看原文:http://www.sijitao.net/2043.html
通常linux系统的基础信息如内存、cpu等这些都是通过shell来获取。不过python的psutil模块把shell查看系统基础信息的功能都包装了下,使用更加简单,功能丰富。

psutil安装

地址:https://pypi.python.org/pypi?:action=display&name=psutil

下载源码后安装

wget https://pypi.python.org/packages/source/p/psutil/psutil-3.2.1.tar.gz --no-check-certificate
tar zxvf psutil-3.2.1.tar.gz 
cd psutil-3.2.1
sudo python setup.py install

获取系统基本信息的使用

CPU信息

linux系统中的cpu主要有几个部分组成,可以参考之前《Linux系统查看CPU使用率的几个命令》这篇文章。

使用cpu_times方法获取cpu的完整信息,如下所示。

>>> psutil.cpu_times()
scputimes(user=406604.31, nice=9686.8199999999997, system=664003.88, idle=19646386.609999999, iowait=715788.23999999999, irq=165388.04000000001, softirq=47710.230000000003, steal=0.0, guest=0.0)

获取单个数据,如用户的cpu时间

>>> psutil.cpu_times().user
406604.59999999998

获取cpu物理和逻辑个数,默认logical值为True 。

>>> psutil.cpu_count()
4
>>> psutil.cpu_count(logical=False)
2
内存信息

内存信息的获取主要使用virtual_memory方法。swap使用就用swap_memory方法。

>>> mem=psutil.virtual_memory()
>>> mem
svmem(total=1047543808L, available=717537280L, percent=31.5, used=1018589184L, free=28954624L, active=441827328, inactive=449007616, buffers=218214400L, cached=470368256)
>>> mem.total
1047543808L
>>> print (mem.total/8/1024)
127874
>>> print (mem.total/1024/1024) 
999

其中percent表示实际已经使用的内存占比,即(1047543808-717537280)/1047543808*100% 。available表示还可以使用的内存。

磁盘信息

磁盘信息主要有两部分,一个是磁盘的利用率,一个是io,他们分别可以通过disk_usage和disk_io_counters方法获取。

如下先获取分区信息,然后看下根分区的使用情况。

>>> psutil.disk_partitions()
[sdiskpart(device='/dev/mapper/zhang-root', mountpoint='/', fstype='ext4', opts='rw,errors=remount-ro'), sdiskpart(device='/dev/sda1', mountpoint='/boot', fstype='ext2', opts='rw')]
>>> psutil.disk_usage('/') 
sdiskusage(total=43785617408, used=15221456896, free=26339921920, percent=34.799999999999997)
>>>

默认disk_io_counters方法获取的是硬盘总的io数和读写信息,如果需要获取单个分区的io和读写信息加上"perdisk=True"参数。

>>> psutil.disk_io_counters()
sdiskio(read_count=11722336, write_count=136652693, read_bytes=263345571840, write_bytes=848806625280, read_time=66298670, write_time=2741668730)
>>> psutil.disk_io_counters(perdisk=True)
{'dm-1': sdiskio(read_count=71443, write_count=102745, read_bytes=292630528, write_bytes=420843520, read_time=684480, write_time=44471270), 'sda5': sdiskio(read_count=5305289, write_count=29095024, read_bytes=131662169088, write_bytes=424404525056, read_time=28226110, write_time=641655840), 'sda2': sdiskio(read_count=2, write_count=0, read_bytes=2048, write_bytes=0, read_time=30, write_time=0), 'dm-0': sdiskio(read_count=6343081, write_count=107455225, read_bytes=131369276416, write_bytes=423983681536, read_time=37361670, write_time=2055542540), 'sda1': sdiskio(read_count=2521, write_count=166, read_bytes=21493760, write_bytes=172032, read_time=26380, write_time=1810)}
>>>
网络信息

网络io和磁盘io使用方法差不多,主要使用net_io_counters方法,如果需要获取单个网卡的io信息,加上pernic=True参数。

>>> psutil.net_io_counters()
snetio(bytes_sent=470306251621, bytes_recv=504672135942, packets_sent=1231438305, packets_recv=1243021636, errin=0, errout=0, dropin=0, dropout=0)
>>> psutil.net_io_counters(pernic=True)
{'lo': snetio(bytes_sent=53311613686, bytes_recv=53311613686, packets_sent=121127899, packets_recv=121127899, errin=0, errout=0, dropin=0, dropout=0), 'eth1': snetio(bytes_sent=209756860205, bytes_recv=193733233062, packets_sent=356636797, packets_recv=391137413, errin=0, errout=0, dropin=0, dropout=0), 'eth0': snetio(bytes_sent=207237886306, bytes_recv=257627387945, packets_sent=753674621, packets_recv=730757206, errin=0, errout=0, dropin=0, dropout=0)}
>>>

以上是psutil模块获取linux系统基础信息的几个方法,大概常用的数据就这些。当然其他用法还有很多,详情可以参考他的官方文档。

网址:http://pythonhosted.org/psutil/

 

这篇关于Python获取系统基础信息psutil模块使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680724

相关文章

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py