欢迎大家来到IT世界,在知识的湖畔探索吧!
一、简介
psutil是一个跨平台库,能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,性能分析和系统资源及进程的管理。
安装命令:pip install psutil
导入方式:import psutil
官方文档: https://github.com/giampaolo/psutil
二、用法示例
1.CPU相关
# 获取CPU数量 print(psutil.cpu_count()) # 8 # CPU统计数据 print(psutil.cpu_stats()) # scpustats(ctx_switches=5579, interrupts=, soft_interrupts=, syscalls=65346) # CPU使用率 print(psutil.cpu_percent(interval=1, percpu=True)) # [26.8, 25.8, 20.4, 17.3, 19.6, 11.2, 9.1, 5.0] # 获取CPU完整信息 print(psutil.cpu_times()) # scputimes(user=.31, nice=0.0, system=.5, idle=.04)
欢迎大家来到IT世界,在知识的湖畔探索吧!
2.内存相关
为了便于将单位从bit转换为g,先定义一个bit_switch_g的函数
欢迎大家来到IT世界,在知识的湖畔探索吧!def bit_switch_g(total): """将单位从Bit转换为G""" return round(total / 1024 / 1024 / 1024, 2)
mem = psutil.virtual_memory() print(f"总内存: {bit_switch_g(mem.total)}G") # 总内存: 8.0G print(f"可用内存: {bit_switch_g(mem.available)}G") # 可用内存: 1.19G print(f"空闲内存: {bit_switch_g(mem.free)}G") # 空闲内存: 0.08G print(f"已用内存占比: {mem.percent}%") # 已用内存占比: 86.9% # 获取交换区内存 print(psutil.swap_memory()) # sswap(total=, used=, free=, percent=94.4, sin=152, sout=)
3.磁盘相关
欢迎大家来到IT世界,在知识的湖畔探索吧!disk_usage = psutil.disk_usage("/Users") print(disk_usage) # sdiskusage(total=4, used=6, free=, percent=83.4) print(f"磁盘总空间:{bit_switch_g(disk_usage.total)}G") # 磁盘总空间:228.27G print(f"磁盘已用空间:{bit_switch_g(disk_usage.used)}G") # 磁盘已用空间:167.57G print(f"磁盘剩余空间:{bit_switch_g(disk_usage.free)}G") # 磁盘剩余空间:33.36G print(f"磁盘已用空间占比:{disk_usage.percent}%") # 磁盘已用空间占比:83.4% # 获取硬盘总的io数和读写信息,加上"perdisk=True"参数获取单个分区的io和读写信息 print(psutil.disk_io_counters(perdisk=True))
4.网络相关
print(psutil.net_io_counters()) # 获取网络总的IO情况 print(psutil.net_io_counters(pernic=True)) # 获取网卡的io情况 print(psutil.net_if_addrs()) # 获取网络接口信息
5.系统相关
# 获取开机时间,默认返回形式为时间戳 print(time.strftime("%Y-%m-%d,%H:%M:%S", time.localtime(psutil.boot_time()))) # 2024-07-08,09:53:04 # 遍历系统进程,打印进程名、进程号、进程状态 ps = psutil.pids() for pid in ps: pid_info = psutil.Process(pid) name = pid_info.name() pid_num = pid_info.pid status = pid_info.status() print(f"进程名称:{name},进程号{pid_num},进程状态{status}") # 获取单个进程 p = psutil.Process(pid=97674) print(f"进程名称:{p.name()},进程号{p.pid},进程状态{p.status()}") # 进程名称:Google Chrome Helper (Renderer),进程号97674,进程状态running
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/95952.html