Python以表格的形式打印佔用內存Top10的程序列表

此題目涉及到Python對進程的操作、for循環計數循環次數、排序與打印表格等,題目比較簡單,效果圖如下:

p_w_picpath

p_w_picpath

代碼如下:

#!/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

代碼也可以從GitHub上獲取,https://github.com/DingGuodong/LinuxBashShellScriptForOps/blob/master/functions/process/performanceOps.py

其中用到了兩個主要的第三方模塊,psutil(用於獲取進程信息)和prettytable(用於打印表格),Windows和Linux系統上均可使用,如果提示“ImportError: No module named xxxx”,則可以執行命令pip install xxxx或者easy_install xxxx。

--end--

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章