python psutil 进程cpu_Python Psutil - 系统进程管理库

(之前就想推荐这个库了,只不过一直咕咕咕)

psutil是一个全平台的,支持很多语言的进程管理库,它可以实现对系统磁盘,内存等情况的查询,还可以开启子进程+管理子进程

优点:比subprocess,os库的执行命令的函数来的成熟,匿名管道也非常好用

缺点:我觉得没有

本文章讲的是python3上面的psutil库,其他语言的可以直接github找一下文档

获取cpu信息:psutil.cpu_times()

获取cpu时:psutil.cpu_times().user

获取cpu逻辑个数:psutil.cpu_count()

获取CPU物理个数:psutil.cpu_count(logical=False)

获取CPU使用率:psutil.cpu_percent()#参数内表示保留几位小数,可不填

获取内存信息:psutil.virtual_memory()#virtual 意思是虚拟的,也就是说这是虚拟内存的信息

接下来讲进程

获取系统所有pid:psutil.pids()

可以用pid打开单个进程

(接下来直接复制百度就见得到的对单个进程的操作)

p = psutil.Process(16031)

p.name()      #进程名

p.exe()         #进程的bin路径

p.cwd()        #进程的工作目录绝对路径

p.status()     #进程状态

p.create_time()  #进程创建时间

p.uids()      #进程uid信息

p.gids()      #进程的gid信息

p.cpu_times()    #进程的cpu时间信息,包括user,system两个cpu信息

p.cpu_affinity()  #get进程cpu亲和度,如果要设置cpu亲和度,将cpu号作为参考就好

p.memory_percent()  #进程内存利用率

p.memory_info()    #进程内存rss,vms信息

p.io_counters()    #进程的IO信息,包括读写IO数字及参数

p.connectios()    #返回进程列表

p.num_threads()  #进程开启的线程数

关于子进程:

匿名管道首先要用subprocess的一个PIPE

from subprocess import PIPE

p = psutil.Popen(['./test.exe'],stdin=PIPE,stdout=PIPE)#第一个参数里面的列表多加几个值就是多加几个参数,例如: echo 233就写成['echo','233']

p.name()

p.stdin.write(params)#这里面需要把str加密为byte

p.stdin.flush()#跟上面的stdin配对,输入写完就得写这条

p.stdout().read()#这里返回的byte也需要decode成str

p.wait()#这里会等待程序至执行完毕,并且会返回一个int值是这个子进程的返回值

p.memory_info().vms #这里会返回子进程的实际内存,其他内存可以自己根据memory_info()的返回值自行选择

psutil的优势在于跨平台和耐用,亲测在termux底下的python3.6可以完美运行

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值