使用Python进行Windows进程管理
我需要一个脚本,用来检查某个特定的程序是否在运行,如果没有找到这个程序,就返回一些信息。我知道可以用subprocess来实现这个功能,但有没有更简单的方法呢?
2 个回答
1
为了实现类似的功能,我使用过 psutil 这个库。这里有一些小提示:
- 可以用
psutil.pids()
来列出所有正在运行的进程(参考链接) - 想查看某个进程的信息,可以用
process = psutil.Process(pid)
(参考链接) - 如果需要结束一个进程,可以用
process.kill
或者process.terminate()
在Windows上进行 安装 - 使用 pip
安装时会从源代码编译,所以你可能更想直接下载二进制安装包,可以去 https://pypi.python.org/pypi/psutil/#downloads。
7
在Windows系统上,你可以使用WMI(Windows管理工具)来进行一些管理操作:
import win32com.client
def find_process(name):
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(".", "root\cimv2")
colItems = objSWbemServices.ExecQuery(
"Select * from Win32_Process where Caption = '{0}'".format(name))
return len(colItems)
print find_process("SciTE.exe")