psutil的几个例子
python进行系统相关操作时都有点力不从心,尤其是windows下,比如获取进程的cpu、内存等等,可以通过以下方法可以达到这种要求:
1、安装pywin32、psutil这种第三方库,里面提供了很多相关的api
2、用c++写,编译成dll,把相关api导出,让python去调用
3、通过ctypes去调用windows api实现
psutil是跨平台的,不过功能比较弱,举几个例子
##根据进程名获取PID
def nametopid(x):
num=[]
for r in psutil.process_iter():
aa = str(r)
f = re.compile(x,re.I)
if f.search(aa):
num.append( aa.split('pid=')[1].split(',')[0] )
return num
print nametopid('chrome') ##根据进程名获取进程全路径
def nametopath(x):
num=[]
for i in nametopid(x):
num.append(psutil.Process(int(i)).exe())
return num
print nametopath('notepad') ##根据PID获取进程名
def pidtoname(x):
return psutil.Process(int(x)).name()
# print pidtoname('sasa') ##根据PID获取进程全路径
def pidtopath(x):
return psutil.Process(int(x)).exe()
# print pidtopath('1280') ##杀进程
def killprocess(x):
if x.isdigit():
psutil.Process(int(x)).terminate()
else:
for i in nametopid(x):
psutil.Process(int(i)).terminate()
# killprocess('notepad')
# killprocess('1111') ##杀进程树
def killprocesstree(x):
if x.isdigit():#根据pid杀
for pid in psutil.pids():
if psutil.Process(int(pid)).ppid()==int(x):
psutil.Process(int(pid)).terminate()
psutil.Process(int(x)).terminate()
else:#根据进程名杀
try:
for pid in psutil.pids():#杀子进程
if str(psutil.Process(int(pid)).ppid()) in nametopid(x): #if 'a' in theList:
psutil.Process(int(pid)).terminate()
for i in nametopid(x):#杀父进程
psutil.Process(int(i)).terminate()
except Exception,info:
return "input the right pname!"
# killprocesstree('procexp.exe') ##获取进程内存占用 , psutil does not expose the private working set
def getprocessmem(x):
if x.isdigit():
return psutil.Process(int(x)).memory_info()
else:
for i in nametopid(x):
return psutil.Process(int(i)).memory_info()
# print getprocessmem('236') ##获取进程CPU占用
def getprocesscpu(x):
if x.isdigit():
return psutil.Process(int(x)).cpu_percent(interval=1.0) / psutil.cpu_count()
else:
num=[]
for i in nametopid(x):
num.append(psutil.Process(int(i)).cpu_percent(interval=1.0) / psutil.cpu_count() )
return num
psutil的几个例子的更多相关文章
- python基础之psutil模块和发邮件(smtplib和yagmail)
除了内建的模块外,Python还有大量的第三方模块. 基本上,所有的第三方模块都会在PyPI - the Python Package Index上注册,只要找到对应的模块名字,即可用pip安装. 此 ...
- psutil模块安装指南(win与linux)
1.windows下psutil模块安装: https://pypi.python.org/packages/3.4/p/psutil/ 下载符合版本的软件包下载,然后安装即可. 2.ubuntu下载 ...
- Python 中psutil 模块的安装
第一步下载psutil 的安装包 网址:https://pypi.python.org 第二步解压 .tar.gz cd psutil- 第三步安装: python setup.py build py ...
- psutil模块
python模块之psutil 一.psutil模块 1.介绍 psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率( ...
- psutil 跨平台根据程序名杀进程
笔者在项目中遇到过需要根据进程名杀进程的需求,利用python库psutil实现了此功能. 模块地址: https://pypi.python.org/pypi/psutil/ psutil功能 ...
- psutil库
psutil是一个非常强大的第三方库,用法简单,这里主要是做一下梳理. 先看看官方说明: psutil (python system and process utilities) is a cross ...
- python--cProfile,memory_profiler,psutil
关于测试代码用了多长时间,我们之前介绍了timeit.相较于timeit,python中还有一个更加强大的模块,cProfile模块 (提到cProfile,其实还有一个profile,但profil ...
- python运维开发常用模块(一)psutil
1.模块简介 psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻 松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网 络等)信息.它主 ...
- SQLServer地址搜索性能优化例子
这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...
随机推荐
- 安装Office2010出现MSXML版本6.10.1129.0错误
在键盘上按“win+R”组合键出现图图示界面后,输入“regsvr32 /u msxml6.dll”,点击“确定”. 出现图示显示后,点击“确定”,并同时去试试office是否能够安装了. 如果上 ...
- transform:translate(-50%,-50%)实现水平垂直居中
.content { padding:10px; background:green; color:#fff; position:absolute; top:50%; ...
- vue 实现子向父传值
父组件 <template> <div id="app"> <child @onChange='onChildValue'></child ...
- Flutter学习(一)之MaterialApp和Scaffold组件使用详解
一,前言: MaterialApp和Scaffold是Flutter提供的两个Widget,其中: MaterialApp是一个方便的Widget,它封装了应用程序实现Material Design所 ...
- flask基础三
一.路由和视图(基础二上补充) (1)有参装饰器 路由采用的是有参装饰器实现的 @app.route("/index",methods=["GET"," ...
- poj2688
#include<iostream> using namespace std; #include<time.h> int m,n; ][]; ][]; typedef stru ...
- SQL中ON和WHERE的区别(转)
原文:https://www.cnblogs.com/guanshan/articles/guan062.html 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时 ...
- 为多维数组添加一列以及reshape用法注意
https://blog.csdn.net/orangefly0214/article/details/80934008参考这个了链接 下面是我自己用到的代码,亲测可用 # data = pd.rea ...
- Polynomial_0
@[注]两个一元多项式按照指数由大到小的顺序输入! #include <stdio.h> #define MAXSIZE 50 struct PolyNode { int coeffici ...
- 【长文】Google面试官分步解析自己泄漏前的面试题,超多干货和建议
本文翻译自Google工程师/面试官Alex Golec的文章:Google Interview Questions Deconstructed: The Knight's Dialer:翻译:实验楼 ...