Ari*_*nga 5 python shell python-2.7
我是 python 新手,有一个简单的问题,即查找使用 CPU 的顶级进程。我可以使用 ps 和 sort 在 shell 中完成此操作。
我检查了一些链接,但它没有部分帮助,因为该函数定义如下,
define find_proc(ps_input)
Run Code Online (Sandbox Code Playgroud)
ps_input 将如下所示,
PID CPU PROG
12658 20 ABC
19265 80 BCD
21265 60 BAD
19655 11 BCE
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我完成这个程序吗..
提前致谢。
psutil是我推荐的一个。来自 PyPI 站点,这里是包描述,
psutil(进程和系统实用程序)是一个跨平台库,用于在 Python 中检索有关正在运行的进程和系统利用率(CPU、内存、磁盘、网络、传感器)的信息。它主要用于系统监控、分析和限制进程资源以及正在运行的进程的管理。它实现了 UNIX 命令行工具提供的许多功能,例如:ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap。
为了解决您的问题陈述,这是我从网站上获取的示例,其中列出了按内存排序的进程 - https://thispointer.com/python-get-list-of-all-running-processes-and-sort-by -最高内存使用率/
def getListOfProcessSortedByMemory():
'''
Get list of running process sorted by Memory Usage
'''
listOfProcObjects = []
# Iterate over the list
for proc in psutil.process_iter():
try:
# Fetch process details as dict
pinfo = proc.as_dict(attrs=['pid', 'name', 'username'])
pinfo['vms'] = proc.memory_info().vms / (1024 * 1024)
# Append dict to list
listOfProcObjects.append(pinfo);
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
# Sort list of dict by key vms i.e. memory usage
listOfProcObjects = sorted(listOfProcObjects, key=lambda procObj: procObj['vms'], reverse=True)
return listOfProcObjects
Run Code Online (Sandbox Code Playgroud)
完整代码可在上述网站中找到;您可能需要根据 CPU 使用情况进行相应调整以列出列表。希望这可以帮助。