【Python入门】36.常用第三方模块之 获取系统信息psutil

23_python笔记-psutil、mail模块 文章目录知识点1 psutil介绍示例1:top 监控系统性能 (类似 任务管理器)示例2:运维做什么?保证服务7*24小时正常运行示例3:fdisk -l 查看磁盘分区示例4:iostat查看磁盘读写情况示例5:uptime top的第1行输出示例6:dstat 监控cpu、磁盘、网络情况示例7:ethtool ens33 查看网卡状态、型号 比如怎样计算网卡流量知识点2 安装示例知识点3 psutil1、cpu(linux命令:top)2、memory(linux命令:free)3、disk(linux 阅读详情

摘要:通过psutil模块,我们可以轻松地获取CPU、内存、磁盘、网络、进程等相关信息,是系统管理与维护必不可少的模块。


写在前面:为了更好的学习python,博主记录下自己的学习路程。本学习笔记基于廖雪峰的Python教程,如有侵权,请告知删除。欢迎与博主一起学习Pythonヽ( ̄▽ ̄)ノ


目录

常用第三方模块

psutil

psutil,指process and system utilities。它的功能时获取系统相关信息,实现系统监控。

psutil支持跨平台使用,支持Linux/UNIX/OSX/Windows等。是系统管理不可缺少的模块。

安装psutil

在命令行模式下输入:

pip install psutil

等待安装完成即可。

获取CPU信息

psutil.cpu_count()获取cpu的逻辑个数和物理个数:

>>>import psutil
>>>psutil.cpu_count()
2
>>>psutil.cpu_count(logical+False)
2

信息显示cpu是2核非超线程。

psutil.cpu_times()获取cpu所有信息:

>>>psutil.cpu_times()
scputimes(user=33700.5996281, system=13064.771748000057, idle=327437.26934339997, interrupt=827.1329021, dpc=476.0682517) 

psutil.cpu_percent()获取cpu的使用率:

>>>psutil.cpu_percent(interval=1, percpu=True)
[19.7, 23.1] 

获取内存信息

psutil.virtual_memory()获取物理内存:

>>>psutil.virtual_memory()
svmem(total=8457904128, available=5363146752, percent=36.6, used=3094757376, free=5363146752) 

返回值以字节为单位,结果显示,总内存大小为8457904128 = 7.8GB,已用3094757376 = 2.8GB,占用了36.6%。

psutil.swap_memory()获取交换内存:

>>>psutil.swap_memory()
sswap(total=16913903616, used=4278480896, free=12635422720, percent=25.3, sin=0, sout=0) 

显示交换区大小是16913903616 = 15 GB。

获取磁盘信息

psutil.disk_partitions()获取磁盘分区信息:

>>>psutil.disk_partitions()
[sdiskpart(device='C:\\', mountpoint='C:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='D:\\', mountpoint='D:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='E:\\', mountpoint='E:\\', fstype='', opts='cdrom')] 

信息显示,c盘的文件系统是NTFS,opts含rw表示可读写。

psutil.disk_usage('/')获取磁盘使用情况:

>>>psutil.disk_usage('/')
sdiskusage(total=41881169920, used=35088613376, free=6792556544, percent=83.8) 

信息显示,c磁盘总容量为41881169920 = 39GB,使用83.8%。

psutil.disk_io_counters()获取磁盘IO信息:

>>>psutil.disk_io_counters()
sdiskio(read_count=902615, write_count=1299370, read_bytes=13761329664, write_bytes=40651160064, read_time=463, write_time=1647) 

获取网络信息

psutil.net_io_counters()获取网络读写字节/包的个数:

>>>psutil.net_io_counters()
snetio(bytes_sent=366407235, bytes_recv=11336031853, packets_sent=5187036, packets_recv=8932277, errin=0, errout=0, dropin=0, dropout=0) 

psutil.net_if_addrs()获取网络接口信息:

>>>psutil.net_if_addrs()
{
  '本地连接 2': [snicaddr(family=<AddressFamily.AF_LINK: -1>, address='88-51-FB-7D-38-FA', netmask=None,...]
  '无线网络连接 40':[snicaddr(family=<AddressFamily.AF_LINK: -1>,...]
  '无线网络连接 39':[...]
  ...
}

psutil.net_if_stats()获取网络接口状态:

>>>psutil.net_if_stats()
{
  '本地连接 2': snicstats(isup=False, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=0, mtu=1500),
  '无线网络连接 40': snicstats(isup=False, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=0, mtu=1500),
  '无线网络连接 39': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=225, mtu=1500), 
  ...
}

psutil.net_connections()获取当前网络连接信息:

>>>psutil.net_connections()
[
  sconn(fd=-1, family=<AddressFamily.AF_INET: 2>, type=1, laddr=addr(ip='127.0.0.1', port=21440), raddr=(), status='LISTEN', pid=344), 
  sconn(fd=-1, family=<AddressFamily.AF_INET: 2>, type=1, laddr=addr(ip='192.168.0.119', port=52680), raddr=addr(ip='120.92.144.250', port=443), status='ESTABLISHED', pid=1288),
  sconn(fd=-1, family=<AddressFamily.AF_INET6: 23>, type=1, laddr=addr(ip='::', port=49173), raddr=(), status='LISTEN', pid=612), 
  ...
  sconn(fd=-1, family=<AddressFamily.AF_INET: 2>, type=2, laddr=addr(ip='192.168.0.119', port=138), raddr=(), status='NONE', pid=4)
] 

注:你可能会得到一个AccessDenied错误,原因是psutil获取信息也是要走系统接口,而获取网络连接信息需要root权限,这种情况下,可以退出Python交互环境,用sudo重新启动

获取进程信息

psutil.pids()获取所有进程ID:

>>>psutil.pids()
[0, 4, 312, 488, 540, 556, 596, 612, 620,..,11440, 8924] 

获取具体进程的相关信息:

>>> p = psutil.Process(11232)   # 获取指定进程ID=11232,该进程是python.exe
>>> p.name()                    # 进程名称
'python.exe '
>>> p.exe()                     # 进程exe路径
'D:\program files (x86)\Python37\python.exe '
>>> p.cwd()                     # 进程工作目录
'C:\Users\Administrator '
>>> p.cmdline()                 # 进程启动的命令行
['python'] 
>>> p.ppid()                    # 父进程ID
10284 
>>> p.parent()                  # 父进程
psutil.Process(pid=10284, name='cmd.exe', started='15:48:27') 
>>> p.children()                # 子进程列表
[]
>>> p.status()                  # 进程状态
'running'
>>> p.username()                # 进程用户名
'MS-20170504FUSX\Administrator '
>>> p.create_time()             # 进程创建时间
1535960910.0 
>>> p.cpu_times()               # 进程使用的CPU时间
pcputimes(user=0.046800299999999996, system=0.062400399999999995, children_user=0.0, children_system=0.0) 
>>> p.memory_info()             # 进程使用的内存
pmem(rss=13094912, vms=8167424,..., private=8167424)
>>> p.open_files()              # 进程打开的文件
[popenfile(path='C:\\Windows\\System32\\zh-CN\\kernel32.dll.mui', fd=-1), ...] 
>>> p.connections()             # 进程相关网络连接
[]
>>> p.num_threads()             # 进程的线程数量
2
>>> p.threads()                 # 所有线程信息
[pthread(id=10408, user_time=0.046800299999999996, system_time=0.062400399999999995), pthread(id=7924, user_time=0.0, system_time=0.0)] 
>>> p.environ()                 # 进程环境变量
{'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\Administrator\\AppData\\Roaming', 'ASL.LOG': 'Destination=file', ...}
>>> p.terminate()               # 结束进程

注:和获取网络连接类似,获取一个root用户的进程需要root权限,启动Python交互环境或者.py文件时,需要sudo权限。

psutil还提供了一个test()函数,可以模拟出ps命令的效果:

>>> import psutil
>>> psutil.test()
USER         PID %MEM     VSZ     RSS TTY           START    TIME  COMMAND 
SYSTEM         0    ?       ?      24 ?             Sep01   50:57  System Idle Process 
SYSTEM         4    ?     120     368 ?             Sep01   53:01  System 
             152  0.2    9992   19232 ?             Sep01   00:03  svchost.exe 
Administra   224  0.1    2360    7264 ?             Sep01   00:00  conhost.exe 
             312    ?     444    1132 ?             Sep01   00:00  smss.exe 
...

小结

psutil模块的功能十分强大,可以获取CPU、内存、磁盘、网络等等系统信息。
psutil还有其他更多的功能,如获取用户、Windows服务等信息,具体请参考psutil的官网


以上就是本节的全部内容,感谢你的阅读。

下一节内容:常用第三方模块之 virtualenv

有任何问题与想法,欢迎评论与吐槽。

和博主一起学习Python吧( ̄▽ ̄)~*

python之psutil使用中获取网卡信息--解析 源代码: import psutil info = psutil.net_if_addrs() info2 = psutil.net_if_stats() print(info) # 结果1 print("\n") print(info2) # 结果2 运行结果: 结果1: {'以太网': [snicaddr(family=<AddressFamily.AF_LINK: ... 阅读详情

相关推荐

python学习笔记(三十) -- 安装Anaconda以及使用第三方模块Pillow、requests、chardet、psutil

Table of Contents   前言 Pillow 更改图片长宽以及加模糊滤镜  绘制验证码 requests get请求 Post请求 爬取图片的一个小案例 chardet psutil 前言 我们通过pip命令可以下载所需要的模块,但是一个一个下载非常麻烦。推荐使用Anaconda,Anaconda的使用教程以及安装教程请阅读下面的文章写的非常详细。 这里可...

苝花向暖丨楠枝向寒 2万+

15.python笔记之psutil模块

一、psutil模块 1. psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、i...

weixin_30299539的博客 829

在CentOS 7上安装Python的psutil模块

在本文中,我们详细介绍了在CentOS 7上安装Python的psutil模块的步骤。通过按照上述步骤进行操作,你应该能够成功安装psutil并开始使用它来监测系统性能和进行进程管理。其中,psutil模块是一个跨平台的库,用于获取系统信息和进程管理。这就完成了在CentOS 7上安装Python的psutil模块的过程。一旦我们确认系统已经安装了Python和pip,我们可以使用pip命令来安装psutil模块。安装完成后,我们可以编写一个简单的Python脚本来验证psutil模块是否成功安装。

YpysHtml的博客 816

psutil官方文档

psutil documentation¶ Quick links Home page Install Blog Forum Download Development guide What’s new About psutil (python system and process utilities) is a cross-platform librar...

weixin_34062329的博客 599

AI辅助专利撰写实战:30分钟高效产出发明专利初稿

在技术创新的浪潮中,专利撰写常常是开发者将创意转化为知识产权保护壁垒的关键一步,但这个过程往往耗时费力,需要兼顾技术深度与法律文书规范。近期,借助AI辅助工具来提升专利撰写效率已成为一个热门探索方向。本文将围绕如何利用AI工具,在30分钟内高效完成一篇具备授权潜力的发明专利初稿,进行一场从0到1的实战演练。无论你是独立开发者、初创团队的技术负责人,还是希望保护自己研究成果的学生,这套方法都能帮助你快速梳理技术方案,形成结构严谨、逻辑清晰的专利申请文档。 1. 背景与核心概念:AI辅助专利撰写的价值与边界 在

weixin_34253126的博客 494

汽车LED驱动芯片TPS92682-Q1 SPI接口配置与调试实战指南

SPI(串行外设接口)作为一种高速、全双工的同步串行通信总线,广泛应用于微控制器与外围设备之间的数据交换。其工作原理基于主从架构,通过时钟、数据线和片选信号实现设备间的精准时序控制。在汽车电子和工业控制领域,SPI因其简单高效、易于扩展的特性,成为配置复杂电源管理芯片、传感器和存储器的关键技术。通过SPI接口,工程师能够动态调整设备参数、实时读取状态信息,并实现复杂的故障诊断与保护策略,极大地提升了系统的灵活性与可靠性。本文以汽车级双通道LED恒流驱动器TPS92682-Q1为例,深入解析如何通过SPI接口

weixin_29185493的博客 288

centos7 安装psutil模块

psutil 是 一个 跨 平台 库( http:// code. google. com/ p/ psutil/), 能够 轻松 实现 获取 系统 运行 的 进程 和 系统 利用率( 包括 CPU、 内存、 磁盘、 网络 等) 信息。 记录下64位CentOS7安装Python的psutil模块的过程。 在centos7在python3.6环境下,pip需要安装最新的版本,然后需要 升级g...

weixin_42429173的博客 1115

别再手动写用例了!用AI Agent自动生成测试用例的保姆级实战(附Python代码)

本文详细介绍了如何利用AI Agent技术自动生成测试用例,大幅提升测试工程师的工作效率。通过Python代码实战演示,从环境搭建到核心Agent构建(需求解析、场景挖掘、用例编排),再到与企业工具链(TestRail、Jira)的深度集成,帮助团队实现测试用例的智能化生成与管理。

weixin_30897233的博客 646

Python之psutil库的使用

psutil (python system and process utilities) 是一个跨平台的第三方库,能够轻松实现获取系统运行的进程和系统利用率(包扩CPU、内存、磁盘、网络等)信息。它主要用于系统监控、分析、限制系统资源和进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill...

测试 1万+

【Unity学习笔记】事件系统EventSystem

1.EventSystem物体 第一次在Unity中创建UI元素时,总会自动生成一个EventSystem物体,它包含三个组件:Transform、EventSystem、Standalone Input Module。如果我们把它删除了,会发现UI上的事件(比如点击、拖拽)将不会被检测到。没错,它就是用来处理UI相关的事件的。 1.1 EventSystem组件 EventSystem基于输入给物体发送事件,它在整个事件系统中扮演的主要角色是: 1.管理被选中的物体 2.管理正在使用的Input Modu

一白梦人的博客 1万+

【论文精读】Formal Mathematical Reasoning: A New Frontier in AI

注:本文根据师兄汇报内容总结。

m0_60634555的博客 1189

Python基础Pro | (13) 常用第三方模块

本文取自廖雪峰Python教程,原文地址https://www.liaoxuefeng.com/wiki/1016959663602400。 目录 1. 前言 2. Pillow 3. requests 4. chardet 5. psutil 1. 前言 除了内建的模块外,Python还有大量的第三方模块。 基本上,所有的第三方模块都会在PyPI - the Python Pa...

sdu_hao的博客 425

新手必看|HDevelop核心算子快速上手,为C#移植打基础

在上一篇文章中,我们完成了C#+HALCON的开发环境搭建。但在实际工业开发中,绝不会直接在C#中编写视觉算法HDevelop可视化调试算法 → 验证效果 → 导出C#代码 → 集成到上位机。HDevelop是HALCON专属的算法调试工具,支持实时预览图像、参数动态调节、零编译运行,是新手入门和工业算法调试的核心工具。本文聚焦工业场景高频使用的核心算子,从基础操作到实战案例,手把手教你使用HDevelop;同时重点讲解算法导出C#的规范,让你调试完成的算法,能无缝移植到WinForm上位机中。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 778

python psutil no file_python 常用内建模块之psutil

用Python来编写脚本简化日常的运维工作是Python的一个重要用途。在Linux下,有许多系统命令可以让我们时刻监控系统运行的状态,如ps,top,free等等。要获取这些系统信息,Python可以通过subprocess模块调用并获取结果。但这样做显得很麻烦,尤其是要写很多解析代码。在Python中获取系统信息的另一个好办法是使用psutil这个第三方模块。顾名思义,psutil = pro...

weixin_31653131的博客 225

黑猫带你学UFS协议第23篇:UFS固件升级操作详解(FFU)

摘要:本文介绍了UFS固件更新(FFU)的实现方法与注意事项。根据UFS3.1 JEDEC协议,FFU通过write buffer命令(MODE=0Eh)下载FW固件,随后必须进行power cycle或硬件复位生效。文章详细阐述了FFU操作的10条规则,包括数据分片传输要求、寄存器访问限制等,同时指出协议未明确的厂商实现差异。关键寄存器包括bFFUTimeout、bDeviceFFUStatus和fPermanentlyDisableFwUpdate。

黑猫奥利奥的博客 1万+

通过一个具体的例子,讲解 SAP Cloud Platform Integration(CPI) 的使用方法

最近笔者由于项目需要,又得学习一个新工具:SAP Cloud Platform Integration,简称 CPI,以前又叫做HCI - HANA Cloud Platform Integration Service.笔者想通过本文,把使用这个工具的第一手体会,分享给曾经用过SAP CRM中间件,但尚未有机会接触到CPI的朋友们。之所以本文标题里把SAP CRM中间件和SAP CPI关联在一起,是因为二者同广义上说,扮演的都是系统集成里中间件的角色。SAP ERP和CRM通过qRFC进行业务数据同步,而中

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2275

【Python学习】常用第三方模块

(一)、Pillow Pycharm 安装:打开Terminal、python -m pip install pip python -m pip install Pillow 官网Pillow from PIL import Image, ImageFilter im = Image.open('D:\code\PycharmProjects\PythonStudy\96676015505062...

bfsz的博客 981

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python 之 psutil 模块使用详解

本文介绍了使用Python的psutil库获取系统硬件和进程信息的方法。主要内容包括:1)CPU信息获取,包括时间统计、核心数、使用率、频率等;2)磁盘空间监控,展示总容量、使用量和剩余空间;3)内存使用情况统计;4)网络I/O数据收集;5)系统启动时间获取;6)进程管理功能,包括PID查询、进程详情和资源占用;7)硬件信息如电池状态监测。通过代码示例演示了如何获取和格式化这些系统信息,为系统监控和性能分析提供了实用工具。

Looking的网页备忘录和个人知识库 632

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python3基础知识复习 -- 常用第三方模块(pillow, requests, psutil)

python3基础知识复习 -- 常用第三方模块(pillow, requests, psutil)

peanutfish的专栏 877

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

python psutil替代_python psutil

在Python中获取系统信息的另一个好办法是使用psutil这个第三方模块。psutil = process and system utilities,它不仅可以通过一两行代码实现系统监控,还可以跨平台使用,支持Linux/UNIX/OSX/Windows等psutil.cpu_count() # CPU逻辑数量psutil.cpu_count(logical=False) # CPU物理核心...

weixin_39548541的博客 179

【Python】【整理】廖雪峰Python教程代码整理—— 14、常用第三方模块

14 常用第三方模块 文章目录14 常用第三方模块14.1 Pillow操作图像14.2 requests 14.1 Pillow 操作图像 缩放: from PIL import Image # 打开一个jpg图像文件,注意是当前路径: im = Image.open('test.jpg') # 获得图像尺寸: w, h = im.size print('Original image size...

qq_38866586的博客 398

python psutil模块监控远程服务器_Python监控服务器利器--psutil-阿里云开发者社区...

服务器的监控通过安装一些常用的监控软件之外,有时也需要运行一些shell或Python脚本;shell下可以使用系统自带的ps/free/top/df等shell命令,Python可以调用subprocess等模块来运行shell命令,不过这么做就比较麻烦。这里有一个比较好用的第三方模块:psutil。psutil是一个跨平台的库,用于在Python中检索有关运行进程和系统利用率(CPU,内存,磁...

weixin_40007548的博客 193

更便利的获取主机信息--psutil模块介绍

一款基于python的跨平台的获取主机信息的开发包--psutil

Code小学僧的课后笔记 575

python psutil下载安装_python psutil库安装教程

python psutil库安装教程确认本机已安装python环境查看pip版本安装psutil卸载第三方库总结以上所述是小编给大家介绍的python psutil库安装教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!您可能感兴趣的文章:python使用psutil模块获取系统状态Python psutil模块简单使用实例时间: 2...

weixin_39721924的博客 1357

python功能模块之psutil_详解Python3.6安装psutil模块和功能简介

详解Python3.6安装psutil模块和功能简介来源:中文源码网浏览: 次日期:2018年9月2日【下载文档:详解Python3.6安装psutil模块和功能简介.txt】(友情提示:右键点上行txt文档名->目标另存为)详解Python3.6安装psutil模块和功能简介 一、psutil模块1. psutil是一个跨平台库,能够轻松实现获取...

weixin_35811254的博客 608

python psutil模块_python中的psutil模块

常用 psutil 监控指标使用pip install 安装 psutil 模块,或直接使用 anaconda3 集成的 python.exe通过import psutil来导入 psutil 模块,可以方便的对系统的性能进行监控使用psutil.cpu_count()获取计算机中 cpu 的个数import psutilprint(psutil.cpu_count())运行结果:8使用psuti...

weixin_39942572的博客 179
上一篇: 【Python入门】35.常用第三方模块之 编码检测chardet
下一篇: 【Python入门】37.常用第三方模块之 创建虚拟环境virtualenv
三贝
博客等级 码龄8年 137粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值