此题目涉及到python对进程的操作、for循环计数循环次数、排序与打印表格等,题目比较简单,效果图如下:
代码如下:
#!/usr/bin/python
# encoding: utf-8
# -*- coding: utf8 -*-
“””
created by pycharm.
file: linuxbashshellscriptforops:performanceops.py
user: guodong
create date: 2016/9/21
create time: 18:11
“””
import psutil
import prettytable
ps_result = list()
for proc in psutil.process_iter():
ps_result.append({‘name’: proc.name(), ‘pid’: proc.pid, ‘cpu_percent’: proc.cpu_percent(),
‘memory_percent’: proc.memory_percent()})
table = prettytable.prettytable()
table.field_names = [“no.”, “name”, “pid”, “memory percent”]
for i, item in enumerate(sorted(ps_result, key=lambda x: x[‘memory_percent’], reverse=true)):
table.add_row([i + 1, item[‘name’], item[‘pid’], format(item[‘memory_percent’] / 100, ‘.2%’)])
if i >= 9:
break
print table
其中用到了两个主要的第三方模块,psutil(用于获取进程信息)和prettytable(用于打印表格),windows和linux系统上均可使用,如果提示“importerror: no module named xxxx”,则可以执行命令pip install xxxx或者easy_install xxxx。
以上就是分享python以表格的形式打印占用内存top10的程序列表的详细内容,更多请关注 第一php社区 其它相关文章!